那么可以考虑一下用一些巧妙的方法判重。
容易想到用异或(^)的方式判重。
能判重的原因:
-
a⊕a=0
-
异或满足交换律和结合律。
那么当所有筷子的长度异或起来后,相同长度的异或之后会变成 0,最后剩下的就是落单的筷子的长度了。
ACcode:
#include<bits/stdc++.h>
using namespace std;
void solve(){
int n,x,ans=0;
cin>>n;
for(int i=1;i<=n;i++){
cin>>x;
ans^=x;
}
cout<<ans<<"\n";
}
int main(){
ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
solve();
return 0;
}
over~