A. Submission Bait (思维)
题意:
AliceAliceAlice 和 BobBobBob 正在玩一个数组 aaa 中大小为 nnn 的游戏。
他们轮流进行操作,AliceAliceAlice先开始。无法操作的玩家将输掉。首先,将变量 mxmxmx 设置为 000 。
在一次操作中,玩家可以执行以下操作:
- 选择一个索引 iii ( 1≤i≤n1 \le i \le n1≤i≤n ),使得 ai≥mxa_{i} \geq mxai≥mx ,并将 mxmxmx 设置为 aia_{i}ai 。然后,将 aia_{i}ai 设置为 000 。
确定AliceAliceAlice是否有获胜策略。
分析:
考虑最大值的奇偶性,如果有奇数个最大值,那么先手赢。如果是偶数个最大值,那么就要考虑剩下的数字的奇偶性。如果有一个值有奇数个,那么先手赢,否则后手赢
代码:
#include <bits/stdc++.h>
using namespace std;
int main() {
int t = 1;
cin >> t;
while (t--) {
int n;
cin >> n;
vector<int> a(n + 1);
for (int i = 0; i < n; i++) {
int x;
cin >> x;
a[x]++;
}
int flag = 0;
for (int i = n; i; i--) {
if (a[i] & 1) {
flag = 1;
break;
}
}
if (flag)
cout << "YES" << endl;
else
cout << "NO" << endl;
}
return 0;
}
B.Array Craft (思维)
题意:
对于大小为 mmm 的数组 bbb ,我们定义:
- bbb 的最大前缀位置是满足 b1+…+bi=maxj=1m(b1+…+bj)b_1+\ldots+b_i=\max_{j=1}^{m}(b_1+\ldots+b_j)b1+…+bi=maxj=1m(b1+…+bj) 的最小索引 iii ;
- bbb 的最大后缀位置是满足 bi+…+bm=maxj=1m(bj+…+bm)b_i+\ldots+b_m=\max_{j=1}^{m}(b_j+\ldots+b_m)bi+…+bm=

最低0.47元/天 解锁文章
759

被折叠的 条评论
为什么被折叠?



