CF1779B题解
思路
找规律
其实这题找规律即可,可以发现,当 时, 数组是 个 和 个 交错形成的。换言之,当 时, 数组形如 ,且长度为 。
若 为奇数,既 , 数组形如 ,且长度为 。
有了这个规律,程序就太水了很好写出来了。
代码示例
#include<bits/stdc++.h>
using namespace std;
int t,n;
int main(){
scanf("%d",&t);
while(t--){
scanf("%d",&n);
if(n==3) printf("NO\n");
else if(n&1){
printf("YES\n");
for(int i=1;i<n;i+=2)
printf("%d %d ",(n-3)/2,-((n-3)/2+1));
printf("%d\n",(n-3)/2);
}
else{
printf("YES\n");
for(int i=1;i<=n;i+=2)
printf("-1 1 ");
putchar('\n');
}
}
return 0;
}

浙公网安备 33010602011771号