CF1779B题解

思路

找规律

其实这题找规律即可,可以发现,当 n mod 2=0n\bmod2=0 时,bb 数组是 n÷n\div 个 11 和 n÷n\div 个 −1-1 交错形成的。换言之,当 n mod 2=0n\bmod2=0 时,bb 数组形如 1,−1,1,−1,⋯1,-1,1,-1,\cdots,且长度为 nn。

若 nn 为奇数,既 n mod 2=1n\bmod2=1,bb 数组形如 (n−3)÷2,−((n−3)÷2+1),(n−3)÷2,−((n−3)÷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  阅读(24)  评论(0)    收藏  举报  来源