fishing_cat
2024-11-18 06:40:23
传送门
考虑反向操作,变成给定一个
和官解做法不一样。
因为这种独特的交换条件,可以发现在位置
然后我们再考虑符合后就一定合法了吗?我们可以从排列最前端开始考虑。对于
CF思维题猜结论题,纪念我因数组开小而获得的一发罚时。
#include<bits/stdc++.h>
#define ll long long
#define il inline
using namespace std;
/*快读省了*/
ll t, n, h[200200];
int main() {
read(t);
while (t--) {
read(n);
for (int i = 1; i <= n; i++) {
read(h[i]);
}
ll key = 1;
for (int i = 1; i <= n; i ++)
if (abs(h[i] - i) >= 2) {
key = 0;
break;
}
if (key == 0) puts("No");
else puts("Yes");
}
return 0;
}