Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
27915 yuanjiabao 【BJ】T2 C++ 运行超时 20 1000 MS 444 KB 1083 2024-03-31 14:12:32

Tests(4/20):


#include<iostream> using namespace std; const int N=50100,inf=0x3f3f3f3f,LG=31; int n,q; int a[N]; void init(){ cin>>n>>q; for(int i=1;i<=n;i++)cin>>a[i]; } int cnt[LG]; inline bool cmp(int k){ for(int i=LG-1;i>=0;i--){ if(cnt[i]&&!((k>>i)&1))return true; else if(!cnt[i]&&((k>>i)&1))return false; } return true; } inline void del(int x){for(int i=0;i<LG;i++)if((x>>i)&1)cnt[i]--;} inline void add(int x){for(int i=0;i<LG;i++)if((x>>i)&1)cnt[i]++;} signed main(){ // freopen("beaco.in","r",stdin); // freopen("beaco.out","w",stdout); init(); while(q--){ int opt;cin>>opt; if(opt==1){int x,y;cin>>x>>y;a[x]=y;} else { int k;cin>>k; int ans=inf; int r=1; for (int i=1;i<=n;i++){ while(r<=n&&!cmp(k))add(a[r++]); if(cmp(k))ans=min(ans,r-i); del(a[i]); } if(ans==inf)printf("-1\n"); else printf("%d\n",ans); } } return 0; }


测评信息: