D.Grid-00100
题目;给出一个矩阵n,和一个数字k;用0,1填充矩阵,使矩阵和为k;得出每列和和每行和;求出最大列和 与 最小列和差方与
最大行和与最小行和差方最小的和最小的的矩阵(直接看截图吧,好难描述)。输出矩阵
思路: 先将矩阵全部填为0,尽量让每行,每列的值相等,来填写
官方代码:
#include<stdio.h>
int main(){
int n,k,t,i,j,p,q;
char res[305][305];
scanf("%d",&t);
while(t>0){
t--;
scanf("%d%d",&n,&k);
if(k%n==0) printf("0\n");
else printf("2\n");
for(i=0;i<n;i++){
for(j=0;j<n;j++){
res[i][j]='0';
}
res[i][n]=0;
}
p=0;q=0;
while(k>0){
k--;
res[p][q]='1';
p++;q++;q%=n;
if(p==n){
p=0;q++;q%=n;
}
}
for(i=0;i<n;i++){
printf("%s\n",res[i]);
}
}
}
满足上面的插入顺序;