1 条题解

  • 0
    @ 2023-4-25 18:09:46
    #include<bits/stdc++.h>
    using namespace std;
    int n,m,lastans,x,arr[300005],b[300005];
    map<int,bool> vis;
    int main(){
    	scanf("%d%d",&n,&m);
    	for(int i=1;i<=n;++i){
    		scanf("%d",&arr[i]);
    		vis[arr[i]]=true;
    	}
    	int cnt=n;
    	for(int i=1;i<=m;++i){
    		scanf("%d",&x);
    		x^=lastans;
    		if(vis[x]==true){
    			b[i]=-1;
    			continue;
    		}
    		vis[x]=true;
    		b[i]=x;
    		arr[++cnt]=x;
    		int id=lower_bound(arr+1,arr+1+n,x)-arr;
    		lastans=id;
    	}
    	//排序
    	stable_sort(arr+1,arr+1+cnt);
    	//拿b数组 来lower_bound 
    	for(int i=1;i<=m;++i){
    		if(b[i]==-1)printf("-1 ");
    		else printf("%d ",lower_bound(arr+1,arr+1+cnt,b[i])-arr);
    	}
    	//输出 a数组 
    	putchar('\n');
    	for(int i=1;i<=cnt;++i)printf("%d ",arr[i]);
    	return 0;
    }
    
    
    • 1

    信息

    ID
    2939
    时间
    1000ms
    内存
    256MiB
    难度
    9
    标签
    递交数
    191
    已通过
    15
    上传者