思路:

需要根据数据范围的不同设计不同的算法,若数组长度大于60,可以构造出只需做一次XOR操作的解;否则暴力枚举求解即可。要善于发现隐含条件,有的时候数据范围可能没有看起来的那么大。

实现:

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 const int N = 100005;
 4 int a[N];
 5 
 6 int main()
 7 {
 8     int n;
 9     while (cin >> n)
10     {
11         for (int i = 0; i < n; i++) cin >> a[i];
12         if (n > 100) cout << 1 << endl;
13         else
14         {
15             int res = n;
16             for (int i = 0; i < n; i++)
17             {
18                 int l = 0;
19                 for (int j = i; j < n; j++)
20                 {
21                     l ^= a[j];
22                     int r = 0;
23                     for (int k = j + 1; k < n; k++)
24                     {
25                         r ^= a[k];
26                         if (l > r) res = min(res, k - i - 1);
27                     }
28                 }
29             }
30             cout << (res == n ? -1: res) << endl;
31         }
32     }
33     return 0;
34 }

相关文章:

  • 2021-08-03
  • 2021-10-24
  • 2022-12-23
  • 2021-12-05
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-05-22
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-09-11
  • 2021-08-18
  • 2021-08-17
  • 2022-01-16
  • 2021-06-28
相关资源
相似解决方案