当前位置:   article > 正文

蓝桥杯 异或数列_蓝桥杯 异或数列c++

蓝桥杯 异或数列c++

思路参考:蓝桥杯2021年第十二届省赛-异或数列_zy98zy998的博客-CSDN博客_蓝桥杯异或数列

 

  1. #include<iostream>
  2. #include<algorithm>
  3. #include<map>
  4. #include<cstring>
  5. #include<queue>
  6. using namespace std;
  7. typedef long long ll;
  8. const int N=2e5+5;
  9. ll w[N];
  10. int n;
  11. int cnt[25];
  12. void op(ll x)
  13. {
  14. int t=0;
  15. while(x)
  16. {
  17. t++;
  18. if(x&1) cnt[t]++;
  19. x>>=1;
  20. }
  21. }
  22. void solve()
  23. {
  24. memset(cnt,0,sizeof cnt);
  25. int sum=0;
  26. for(int i=1;i<=n;i++) op(w[i]),sum^=w[i];
  27. if(!sum)
  28. {
  29. cout<<0<<endl;
  30. return;
  31. }
  32. for(int i=20;i>0;i--)
  33. {
  34. if(cnt[i]==1)
  35. {
  36. cout<<1<<endl;
  37. return;
  38. }
  39. if(cnt[i]&1)
  40. {
  41. if(n&1)
  42. {
  43. cout<<1<<endl;
  44. return;
  45. }
  46. else
  47. {
  48. cout<<-1<<endl;
  49. break;
  50. }
  51. }
  52. }
  53. }
  54. int main()
  55. {
  56. int t;cin>>t;
  57. while(t--)
  58. {
  59. cin>>n;
  60. for(int i=1;i<=n;i++) cin>>w[i];
  61. solve();
  62. }
  63. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/560712
推荐阅读
相关标签
  

闽ICP备14008679号