普通算法
"超时空"算法
#include<bits/stdc++.h>
using namespace std;
bool c[120000000];
int main(){
int n,o;
cin>>n;
for(int i=1;i<=n;i++){
cin>>o;
c[o]=c[o]^1;
}
for(int i=1;i<=119999999;i++){
if(c[i]==1){
cout<<i;
return 0;
}
}
return 0;
}
主要在于搜索太费时了
位运算(这才是正解)
原理
i
∈
Z
i\in Z
i∈Z,
i
i
i^
0
=
i
0=i
0=i
i
∈
Z
i\in Z
i∈Z,
i
i
i^
i
i
i=
0
0
0
标程
极简模式
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,u=0,o;
cin>>n;
for(int i=1;i<=n;i++) scanf("%d",&o),u=u^o;
printf("%d",u);
return 0;
}