CF#654(Div.2)

    技术2022-07-12  73

    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]); } } }

     

    满足上面的插入顺序;

     

     

     

     

    Processed: 0.015, SQL: 9