题意:有数组a和c
Alice 和 Bob玩游戏:
alice先手,bob后手
Alice可以从数组a里选一个数移到c数组,Bob可以在a里移除一个元素
求MEX(c)//:最小自然数不在c数组
思路:假设0-k Alice可以取遍
0-k出现的次数不可能有至少一个为0,也不可能有至少2个数,他们出现的次数是<2的(就是1),判断一下就能过了。
code:
#include <bits/stdc++.h>
using namespace std;
int main(){
int t;cin>>t;
while(t--){
int n;cin>>n;map<int,int> m;
for(int i=0;i<n;i++){
int k;cin>>k;
m[k]++;
}
int o=0;
int cnt=0,flag=0;
while(cnt<2){
if (m[o]==0){
flag=0;
break;
}
else if (m[o]>=2) o++;
else{
cnt++;o++;
if (cnt==2){
flag=-1;
break;
}
}
}
cout<<o+flag<<endl;
}
return 0;
}
本蒟蒻第一次发题解,望多多支持!