Codeforces Round #735 (Div. 2)
A
一道小思维题
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 1000100;
int a[N];
signed main()
{int t;cin>>t;while(t--){int n;cin>>n;int cou = 0;for (int i=1;i<=n;i++){cin>>a[i];if (a[i]*a[i-1]>cou) {cou = a[i]*a[i-1];}}cout<<cou<<endl;}
}
C
一个二进制问题
#include <bits/stdc++.h>
using namespace std;
#define int long long
int a[101];
int b[101];
signed main()
{int t;cin >> t;while (t--){int n, m;cin >> n >> m;int cou = -1;for (int i = 0; i < 31; i++){a[i] = m >> i & 1;b[i] = n >> i & 1;if (a[i] == 0&&cou==-1)cou = i;}bool flag = false;int sum = 0;for (int i = 30; ~i; i--){if (flag){sum *= 2;}else{if (a[i] == 0){if (b[i] == 0){sum = sum * 2;}else{flag = true;sum = sum * 2;}}else{if (b[i] == 0){sum = sum * 2 + 1;}else{sum = sum * 2;}}}}if (flag==false) {sum+=pow(2,cou);for (int i=cou-1;~i;i--){if (a[i]!=b[i]) sum-=pow(2,i);}}cout << sum << endl;}
}
D
构造字符串,没啥意思
#include <bits/stdc++.h>
using namespace std;
#define int long long
signed main()
{int t;cin >> t;while (t--){int n;cin >> n;if (n <= 26){for (int i = 0; i < n; i++){printf("%c", 'a' + i);}}else{int cou = 0;if (n % 2==1) cou++;n /= 2;if (n %2 == 0){cou += 2;n--;}n /= 2;// cout<<cou<<" "<<n<<endl;if (cou < 4) n--;else cou-=4;for (int i = 1; i <= n; i++){cout << "a";}printf("%c", 'b' + 1);for (int i = 1; i <= n + 1; i++){cout << "b";}printf("%c", 'b' + 2);for (int i = 1; i <= n + 1; i++){cout << "a";}printf("%c", 'b' + 3);for (int i = 1; i <= n; i++){cout << "b";}printf("%c", 'b' + 4);for (int i = 5; i < cou + 5; i++){printf("%c", 'b' + i);}}cout << endl;}
}