题解:CF1682B AND Sorting
wjc2821296948 · · 题解
题目传送门 CF原题链接
题目主意:
这道题是关于位操作和排序算法的组合问题。我们首先了解一下题目的要求。
题目给出了一个初始未排序的数组
选择数组中两个索引
题目要求:
目标是找到最大的这样的
首先,为了方便叙述,我们定义一个函数
AC代码:
#include<bits/stdc++.h>
using namespace std;
const int maxn = 2e5 + 100;
int p[maxn];
int t = 0,n = 0,tmp = -1;
int main() {
cin >> t;
while(t--){
cin >> n;
for(int i = 0;i < n;i++){//用0开始,1试过过不去
cin >> p[i];
if(i != p[i] && tmp == -1){ //如果p[i]不等于它的位置(i)且未被赋值
tmp = p[i];
}else if(i != p[i]){
tmp = tmp & p[i];
}
}
printf("%d\n",tmp);//输出
tmp = -1;//记得要清0
}
return 0;
}