0
点赞
收藏
分享

微信扫一扫

牛客多校第四场 D Another Distinct Values


​​Another Distinct Values​​

问题分析

首先可以打表找规律,其次可以自己构出矩阵。
看了好多大佬的方法都是自己找规律手动构图Orz
其中一种就是根据已给出的n=2 n = 2 的矩阵往出构造n=4 n = 4 的矩阵(打表的话可以发现n n 为奇数时是无解的,证明略(主要不会hhh))。当边长增加2时,我们将前一个矩阵放在中间,然后依次往边上赋值,但是要保证上下和左右抵消掉(比如用11和−1 − 1 ),然后去考虑对角就ok了。

1 -1 -1 -1
1 -1 --> 1 0 -1 -1
1 0 1 1 1 -1
1 1 1 0

#include<bits/stdc++.h>

int main()
{
int T;
scanf("%d", &T);
while (T--) {
int n;
scanf("%d", &n);
if (n & 1) {
printf("impossible\n");
continue;
}
printf("possible\n");
for (int i = 1; i <= n; i++)
for (int j = 1; j <= n; j++) {
if (i == j) printf("%d", i & 1);
else
printf("%d%c", i < j ? -1 : 1, j == n ? '\n' : ' ');
}
}
}


举报

相关推荐

0 条评论