解题思路:将存在异或为x的数据区间保存到建立的二维数组中去,然后在输入区间时对区间的左右值进行大小判断,如果输入的新区间大于已经保存区间,则代表这段新区间绝对存在异或为x的两个数,故可以直接得出结论,不需要再去重新遍历判断
注意事项:
参考代码:
#include<stdio.h>
#include<math.h>
#include <string.h>
int main() {
int n, m, x;
scanf("%d %d %d", &n, &m,&x);
int arr[100001];
int brr[100001][2];
for (int i = 1; i <=n; i++) {
scanf("%d", &arr[i]);
}
for (int i = 0; i < m; i++) {
int sb = 0;
int a, b;
scanf("%d %d", &a, &b);
for (int g = 0; g < n; g++) {
if (a <= brr[g][0] && brr[g][1] <= b) {
printf("yes\n");
sb = 1;
break;
}
}
if (sb == 1)continue;
sb = 0;
for (int j = a; j < b; j++) {
for (int k = j + 1; k <= b; k++) {
if (( arr[j] ^ arr[k]) == x) {
brr[i][0] = j;
brr[i][1] = k;
printf("yes\n");
sb = 1;
break;
}
}
if (sb == 1)
break;
}
if(sb==0)
printf("no\n");
}
return 0;
}
0.0分
14 人评分
C语言程序设计教程(第三版)课后习题7.1 (C语言代码)浏览:761 |
Pascal三角 (C语言代码)浏览:1252 |
数组输出 (C语言代码)--此题的题目描述有问题浏览:1844 |
A+B for Input-Output Practice (II) (C语言代码)浏览:1043 |
【亲和数】 (C语言代码)浏览:541 |
C语言训练-求函数值 (C语言代码)浏览:600 |
三角形 (C++代码)记忆化搜索浏览:1317 |
C语言程序设计教程(第三版)课后习题6.8 (C++代码)浏览:614 |
简单的a+b (C语言代码)浏览:661 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:268 |