A. FashionanLee*
签到题
利用凸多边形外角和为360°可得,当$ 90 \pmod{360/n} = 0 $ 时,满足要求
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| #include <bits/stdc++.h> using namespace std;
int main() { int t; cin >> t; while (t--) { int n; cin >> n; if (n % 4 == 0) { cout << "YES" << endl; } else { cout << "NO" << endl; } } return 0; }
|
B. AccurateLee*
从左到右找第一个1,记下位置为flag1,如果整个序列都没有1,$ flag1=-1$;
从右到左找第一个0,记下位置为flag2,如果整个序列都没有0,$ flag2=-1$。
当$ flag1=-1 \bigvee flag2=-1 \bigvee flag1 > flag2 $,输出整个序列;
否则,输出flag1左边的序列(不包含flag1)和flag2右边的序列(包含flag2)。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
| #include<bits/stdc++.h> using namespace std;
const int maxn = 1e5 + 5; char s[maxn];
int main() { int t; cin >> t; while (t--) { int n; cin >> n; int flag1 = -1; int flag2 = -1; memset(s, 0, sizeof(s)); cin >> s;
for (int i = 0; i < n; i++) { if (s[i] == '1') { flag1 = i; break; } } for (int i = n - 1; i >= 0; i--) { if (s[i] == '0') { flag2 = i; break; } }
if (flag1 == -1 || flag2 == -1) { for (int i = 0; i < n; i++) { cout << s[i]; } cout << endl; } else if (flag1 < flag2) { for (int i = 0; i < flag1; i++) { cout << s[i]; } for (int i = flag2; i < n; i++) { cout << s[i]; } cout << endl; } else { for (int i = 0; i < n; i++) { cout << s[i]; } cout << endl; } } return 0; }
|
C. RationalLee
To be continue…