Codeforces 1355 D. Game With Array

在这里插入图片描述

题意:

让你构造一个长度为 n nn 的序列,并且 n nn 个数的和为 S SS,问能不能找到一个 1 − n 1-n1n 的数 k kk,使得数组里找不出一个子序列的和为 k kk 或者 n − k n-knk

k = 1 k=1k=1,然后数组只要不出现 1 11n − 1 n-1n1 就好了,只要 s > = 2 ∗ n s >= 2*ns>=2n,也就是由 n − 1 n-1n12 22 和一个 s − ( n − 1 ) ∗ 2 ! = 1 s-(n-1)*2 != 1s(n1)2!=1 构成就可以。

AC代码:

int n, s, k;
 
int main()
{
	int t;
	sdd(n, s);
	if (s < n * 2)
		puts("No");
	else
	{
		puts("YES");
		rep(i, 1, n - 1)
			printf("2 ");
		pd(s - 2 * (n - 1));
		puts("1");
	}
 
	return 0;
}

版权声明:本文为qq_43627087原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。