链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
车车的爱之矩阵是一个行数为 n,列数为 m 的矩阵并满足以下条件:
111. 矩阵元素 xij 为整数并满足 0<∣xij∣⩽114514。
222. 对于在矩阵边界的元素,即 iii 为 1 或n 的元素与 jjj 为 1 或 m 的元素,满足元素周围一圈元素之和加上自身元素值为 0。
3. 对于其他元素,满足周围一圈元素之和为 0。
周围一圈是指在该元素上、下、左、右、左上、左下、右上、右下八个方位的元素。
注:对于在矩阵边界的元素其周围一圈的元素不为八个,只算在边界中的元素。
请聪明的你打印出构造的矩阵。输入描述:
第一行一个正整数 T (1⩽T⩽103),表示有 t 组数据。 接下来 T 行,每行包含两个正整数 n,m (2⩽n, m⩽103),表示需构造矩阵的行数和列数。 保证 ∑n⋅m⩽106。输出描述:
对于每组数据,输出 n 行,每行有 m 个元素,用空格分隔。
答案不唯一,输出任何满足题目要求的答案都可以通过。
示例1
输入
1 2 2输出
114514 114514 -114514 -114514示例2
输入
2 2 3 3 2输出
1 -2 -3 -1 2 3 -3 3 -2 2 -1 1备注:
如图 1,对于元素 x22,其周围一圈是指红底元素,需满足x11+x12+x13+x21+x23+x31+x32+x33=0。
如图 2,对于元素 x12,其周围一圈是指红底元素,需满足x11+x12+x13+x21+x22+x23=0。
如图 3,对于元素 x11,其周围一圈是指红底元素,需满足x11+x12+x21+x22=0。
#include<iostream>
using namespace std;
int main()
{
int t;
scanf("%d",&t);
while(t--){
int n,m;
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(i%2==1) {
if (j % 2 == 1) {
printf("1 ");
} else {
printf("-1 ");
}
}
else if(i%2==0){
if (j % 2 == 1) {
printf("-1 ");
} else {
printf("1 ");
}
}
}
printf("\n");
}
}
return 0;
}