Description
Solution
- 当 时
- 只要依次 即可
- 当 时
- 依次 会重复
- 每行(列)后 错开即可
#include <bits/stdc++.h>
int T,n,k,p;
int main(){
scanf("%d",&T);
while(T--){
scanf("%d%d",&n,&k),p=0;
if(n==1||k==1||2*n*(n+1)%k){puts("-1");continue;}
for(int i=1;i<=2*n+2;i++){
for(int j=1;j<=n;j++) printf("%d ",p+1),p=(p+1)%k;
if(n%k==0) p=(p+1)%k;
putchar(10);
}
}
}