CF1779B题解

思路

找规律

其实这题找规律即可,可以发现,当 nmod2=0n\bmod2=0 时,bb 数组是 n÷n\div11n÷n\div1-1 交错形成的。换言之,当 nmod2=0n\bmod2=0 时,bb 数组形如 1,1,1,1,1,-1,1,-1,\cdots,且长度为 nn

nn 为奇数,既 nmod2=1n\bmod2=1bb 数组形如 (n3)÷2,((n3)÷2+1),(n3)÷2,((n3)÷2+1),(n-3)\div2,-((n-3)\div2+1),(n-3)\div2,-((n-3)\div2+1),\cdots,且长度为 nn

有了这个规律,程序就太水了很好写出来了。

代码示例

#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;
}
posted @ 2023-01-04 19:22  fengxiaoyi  阅读(21)  评论(0)    收藏  举报  来源