杂题题解 1
有解条件
先来证明当且仅当 $n=4\times k,k\in \mathbb Z$ 的时候有解。
【#1】 序列中有没有偶数
易得,$n$ 为奇数,奇数个数相加和一定不为 $0$,该情况一定不成立,证明如下:
由序列中没有偶数知,令 $a_1=2\times k+1\ k\in \mathbb Z,a_2=2\times k\ k\in \mathbb Z,\dots,a_n=2\times k\ k\in \mathbb Z$,由 $\displaystyle \sum_{i=1}^na_i=0$,不妨设 $-a_1=\displaystyle \sum_{i=2}^n a_i$,则有 $-2\times k+1=2\times (k_2+k_3+\dots)+(n-1)$,又由 $-2\times k$ 为偶数,$2\times (k_2+k_3+\dots)$ 为偶数可得,$(n-1)$ 和 $1$ 同为奇数,则 $n$ 为偶数,与假设矛盾,故假设不成立。
【#2】 序列中只有 $1$ 个偶数
由 $n=\displaystyle \prod_{i=1}^n a_i$,若干个奇数相乘为奇数,奇数乘偶数为偶数可得 $n$ 为偶数,该情况不成立,证明如下:
不妨令,$a_1=2\times k \ k\in \mathbb Z,a_2=2\times k\ k\in \mathbb Z,\dots,a_n=2\times k\ k\in \mathbb Z$,由 $\displaystyle \sum_{i=1}^na_i=0$,不妨设 $-a_1=\displaystyle \sum_{i=2}^n a_i$,则有 $-2\times k=2\times (k_2+k_3+\dots)+(n-1)$,显然,$- 2\times k$ 和 $2\times (k_2+k_3+\dots)$ 均为偶数,则 $n-1$ 和 $0$ 同为 $偶数$,由此可得 $n$ 为奇数,与 $n$ 为偶数矛盾,故情况不成立。
【#3】序列中有超过一个偶数,且偶数个数为奇数
由 $n=\displaystyle \prod_{i=1}^n a_i$,若干个奇数相乘为奇数,奇数乘偶数为偶数可得 $n$ 为偶数,该情况成立,证明如下:
不妨令 $a_1,\dots,a_r$ 满足 $a_i=2\times k,k\in \mathbb Z$,$a_{r+1},\dots,a_n$ 满足 $a_i=2\times k+1,k \in\mathbb Z$,不妨设 $- \displaystyle \sum_{i=1}^r a_i=\sum_{i=r+1}^n a_i$,则有 $-2\times (k_1+\dots+k_r)=2\times(k_{r+1},\dots,k_n)+(n-r)$,$n-r$ 和 $0$ 同偶,当 $r=2\times k+1,k\in \mathbb Z$,$n$ 为奇数,不成立。
【#4】序列中有超过一个偶数且偶数个数为偶数
由 $n=\displaystyle \prod_{i=1}^n a_i$,若干个奇数相乘为奇数,奇数乘偶数为偶数可得 $n$ 为偶数,该情况成立,证明如下:
不妨令 $a_1,\dots,a_r$ 满足 $a_i=2\times k,k\in \mathbb Z$,$a_{r+1},\dots,a_n$ 满足 $a_i=2\times k+1,k \in\mathbb Z$,不妨设 $- \displaystyle \sum_{i=1}^r a_i=\sum_{i=r+1}^n a_i$,则有 $-2\times (k_1+\dots+k_r)=2\times(k_{r+1},\dots,k_n)+(n-r)$,$n-r$ 和 $0$ 同偶,当 $r=2\times k,k\in \mathbb Z$,$n$ 为偶数,不成立。
综上所述,当构造序列中有偶数个偶数,且个数大于 $1$ 时满足题意要求,此时 $n\bmod 4=0$,令 $n=4\times k$,其中 $k$ 可为奇数可为偶数。
构造方法
令 $n=4\times k$,分两种情况构造:
- $k$ 为奇数:显然序列中存在两个元素 $-2$ 和 $2\times k$,考虑剩余的元素。此时还有 $4\times k-2$ 个元素,由相加为 $0$ 可知,有 $k$ 个 $-1$ 和 $3\times k-2$ 个 $1$,同时乘积满足条件。
- $k$ 为偶数:显然序列中存在 $2$ 和 $2\times k$,剩余元素为 $k-2$ 个 $-1$ 和 $3\times k$ 个 $1$。
AC 代码
#include<stdio.h>
int n,m;
inline void work(){
scanf("%d",&n);
if(n%4){
putchar('w');
putchar('3');
putchar('3');
putchar('z');
putchar('A');
putchar('K');
putchar('I');
putchar('O');
putchar('I');
putchar('\n');
return;
}m=n>>2;
if(m&1){putchar('2');
putchar(' ');printf("-%d ",m<<1);
for(register int i=1;i<=3*m-2;++i)
putchar('1'),putchar(' ');
for(register int i=1;i<=m;++i)
putchar('-'),putchar('1'),putchar(' ');
}else{putchar('-'),putchar('2');
putchar(' ');printf("-%d ",m<<1);
for(register int i=1;i<=m+(m<<1);++i)
putchar('1'),putchar(' ');
for(register int i=1;i<=m-2;++i)
putchar('-'),putchar('1'),putchar(' ');
}putchar('\n');
}signed main(){
int T;scanf("%d",&T);
while(T--) work();
}

浙公网安备 33010602011771号