建议加强数据
查看原帖
建议加强数据
161748
ssilrrr楼主2022/10/14 10:20

rt,数据很水,O(n2)O(n^2)暴力求mexmex可过

#include <bits/stdc++.h>
using namespace std;
#define rep(a,b,c) for(int a=b;a<=c;a++)
int __tim=0;
int __tim_tmp[10001];
int mex(vector<int> &a){
    ++__tim;for(auto i:a)__tim_tmp[i]=__tim;
    rep(i,0,10000)if(__tim_tmp[i]!=__tim)return i;
}//实现O(n)计算mex值
int sg[10001];
void init_sg(){rep(i,0,10000)sg[i]=-1;sg[0]=0;}
int dp(int x){if(sg[x]!=-1)return sg[x];
else {vector<int> v;rep(i,0,x-1){v.push_back(dp(i));}return sg[x]=mex(v);}}
int T,n;
int main(){init_sg();cin>>T;
rep(_t,1,T){
    int ysum=0;
    int n;cin>>n;while(n--){int k;cin>>k;ysum=ysum^dp(k);}
    if(ysum==0)puts("No");else puts("Yes");
}}
//O(n^2)

建议扩大数据范围

2022/10/14 10:20
加载中...