本人亲测,暴力解法可以过百分之6/13的数据,混个分没问题
问题描述:

解题思路:纯纯的暴力
#include<iostream>
using namespace std;
int n,m, l, r;
int x;
int const N = 1e7 + 10;
int a[N];
bool vis[N];
bool judgement(int l, int r, int x) {
memset(vis, false, sizeof vis);
if (r - l + 1 == 0) {
//cout << "no" << endl;
return false;
}
for (int k = l; k <= r; k++) {
vis[a[k]] = true;//表示这个数字为选中了
}
for (int k = l; k <= r; k++) {
if (vis[a[k] ^ x] == true) {
cout << (a[k] ^ x) << endl;
return true;
}
}
return false;
}
int main() {
cin >> n >> m >> x;
for (int i = 1; i <= n; i++) {
cin >> a[i];
}
while (m--) {
cin >> l >> r;
if (judgement(l, r, x)) {
cout << "yes" << endl;
}
else cout << "no" << endl;
}
return 0;
}
本文提供了一个使用C++实现的暴力解法,该方法能解决一部分问题实例,能在6/13的数据上得到正确结果。程序通过遍历和位运算来判断条件,如果找到符合条件的解则输出并返回true,否则返回false。
2092





