A.解释一下题意给定m,pow(2,m)<n,给前pow(2,m)个数字-1,因此如果i如果不是pow(2,m)的数就修改不能单独修改(4,3,2,1)(需要把1,2,3号元素都修改到1才能满足),(但是3不能单独修改,会让4一起修改,因此他们之间的差值无法改变),如果a[i]>a[i+1],就输出no,反之yes.
// Problem: A. Sorting with Twos
// Contest: Codeforces - Codeforces Round 907 (Div. 2)
// URL: https://codeforces.com/contest/1891/problem/A
// Memory Limit: 256 MB
// Time Limit: 2000 ms
//
// Powered by CP Editor (https://cpeditor.org)
#include <iostream>
#include <cstring>
#include <iomanip>
#include <ctime>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <vector>
#include <stack>
#include <map>
#include <set>
#include <bitset>
#include <queue>
#define eps 1e-5
#define INF 1e9
using namespace std;
typedef long long ll;
const int N = 2e6 + 9;
int a[N];
void solve() {
int n;
cin>>n;
bool flag=false;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<n;i++){
if( (i&(i-1)) && a[i]>a[i+1]){//判断i是不是二次幂。
flag=true;
}
}
if(flag){
cout<<"NO"<<'\n';
}else{
cout<<"YES"<<'\n';
}
}
int main() {
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
int q;
cin >> q;
while (q--) {
solve();
}
return 0;
}
这篇文章讨论了Codeforces竞赛中的一个问题,涉及判断一个给定序列中是否可以通过将非二进制幂位置的元素调整为1,使得相邻元素满足非递减关系。如果可以,输出YES,否则输出NO。
444

被折叠的 条评论
为什么被折叠?



