象神甘尼什,塞克,死神vs火影1.6
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 132768/132768 K (Java/Others)
Total Submission(s): 3633 Accepted Submission(s):
1590
// luogu-judger-enable-o2 // luogu-judger-enable-o2 #include<iostream> #include<vector> #include<cstdio> #include<cstring> #include<algorithm> #define LL long long using namespace std; const int MAXN=3500005; const int INF=1e8+10; inline int read() { char c=getchar();int x=0,f=1; while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();} while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();} return x*f; } struct node { int v,ch[2]; node(){v=0;} void clear(){v=ch[0]=ch[1]=0;} }T[MAXN]; int root=0,tot=0; void Insert(int val) { int now=root; for(int i=31;i>=0;i--) { int opt=(val&(1<<i))?1:0; if(T[now].ch[opt]==0) T[now].ch[opt]=++tot; now=T[now].ch[opt]; } T[now].v=val; } int Query(int val) { int now=root; for(int i=31;i>=0;i--) { int opt=(val&(1<<i))?1:0; if(T[now].ch[opt^1]) now=T[now].ch[opt^1]; else now=T[now].ch[opt]; } return T[now].v; } int main() { int Test=read(),cnt=0; while( (++cnt)<=Test ) { tot=0;root=0; int N=read(),M=read(); for(int i=0;i<=MAXN;i++) T[i].clear(); for(int i=1;i<=N;i++) { int p=read(); Insert(p); } printf("Case #%d:\n",cnt); while(M--) { int p=read(); printf("%d\n",Query(p)); } } return 0; }
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
如何在没有core文件的情况下用dmesg+addr2line定位段错误
用QT制作3D点云显示器——QtDataVisualization
网友评论