Codeforces Round #769 (Div. 2)
A
#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 10;
int T, n;
int main() {
cin >> T;
while (T -- ) {
cin >> n;
string s;
cin >> s;
if (s.size() == 1 || s == "01" || s == "10") cout << "YES" << endl;
else cout << "NO" << endl;
}
return 0;
}
B
打表找规律
#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 10;
int n, m;
int a[N];
int main() {
int T;
cin >> T;
while (T -- ) {
cin >> n;
n --;
int num = 1;
int l;
while (true) {
if (num * 2 > n) {
l = num;
break;
}
num *= 2;
}
for (int i = n ; i >= l; i -- )
cout << i << " ";
for (int i = 0; i < l; i ++ )
cout << i << " ";
cout << endl;
}
return 0;
}
C
暴力
#include <bits/stdc++.h>
using namespace std;
int T, a, b;
int main() {
cin >> T;
while (T -- ) {
cin >> a >> b;
int res;
for (int i = b; ; i ++ ) {
if ((i | a) == i) {
res = i - b + 1;
break;
}
}
for (int i = a; ; i ++ ) {
if ((i | b) == b) {
res = min(res, i - a + 1);
break;
}
}
cout << min(res, b - a) << endl;
}
return 0;
}