评价:简单构造。
思路
注意题目中的“如果有多解输出任意一种即可”。
由于 \(a\) 与 \(a^{2}\) 的奇偶性必定是一致的,所以我们可以将情况分为两种。
-
当 \(x\) 与 \(y\) 奇偶性不一致时,但由于 \(a\) 与 \(a^{2}\) 的奇偶性必定是一致的,所以始终无法构造出正确的序列。但注意题目中的这句话“保证有解”。所以就不用管它了。
-
当 \(x\) 与 \(y\) 奇偶性一致时,我们可以先加上 \(y\) 个 \(1\),这样平方和的条件就满足了,易证明 \(y\) 一定大于 \(x\),然后将一部分 \(1\) 改为 \(-1\),这样的话平方和不变,但和会减 \(2\)。经计算,将前 \(\frac{(y-x)}{2}\) 个数改为 \(-1\),其和就被修改为了 \(x\),且序列长度是 \(y\)。
AC Code
#include<bits/stdc++.h>
using namespace std;
int x, y;
int main() {
cin >> x >> y;
cout << y << '\n';
for (int i = 1; i <= (y - x) / 2; i++) cout << "-1 ";
for (int i = 1; i <= y - (y - x) / 2; i++) cout << "1 ";
return 0;
}
标签:R7,STA,int,题解,奇偶性,一致
From: https://www.cnblogs.com/aub-unluck-beginning/p/18382083