求条
查看原帖
求条
681941
OIer_Hhy楼主2024/7/24 17:19
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+10;
vector<int> vec;
int a,x,n,m,la,ans;
int main(){
   	scanf("%d%d",&n,&m);
   	for(int i=1;i<=n;i++) scanf("%d",&x),vec.insert(lower_bound(vec.begin(),vec.end(),x),x);
   	for(int i=1;i<=m;i++){
       	scanf("%d%d",&a,&x);
       	if(a==1)
           	vec.insert(lower_bound(vec.begin(),vec.end(),x),x); 
       	else if(a==2)
           	vec.erase(lower_bound(vec.begin(),vec.end(),x)); 
       	else if(a==3)
           	ans^=lower_bound(vec.begin(),vec.end(),x)-vec.begin()+1;
       	else if(a==4)
           	ans^=vec.at(x-1);
       	else if(a==5)
            ans^=vec.at(lower_bound(vec.begin(),vec.end(),x)-vec.begin()-1);
       	else if(a==6)
          	ans^=vec.at(upper_bound(vec.begin(),vec.end(),x)-vec.begin());

   }
   cout<<ans<<endl;
   return 0;
}
2024/7/24 17:19
加载中...