首页 > 代码库 > Educational Codeforces Round 20 A. Maximal Binary Matrix(模拟)

Educational Codeforces Round 20 A. Maximal Binary Matrix(模拟)

题意:给你一个n*n的全是0的矩阵,和k个数字“1”,让你把这k个数字1按照从上到下,从左到右的顺序构建出来

思路:模拟即可

代码:

#include <iostream>
#include <cstring>
using namespace std;

int main()
{
    int n,k;
    int data[105][105];
    while(cin>>n>>k)
    {
        memset(data,0,sizeof(data));
        if(k>n*n) cout<<"-1"<<endl;
        else
        {
            for(int i=0;i<n;i++)
            {
                for(int j=0;j<n;j++)
                {
                    if(data[i][j]==0&&k!=0)
                    {
                        if(i==j)
                        {
                            k--;
                            data[i][j]=1;
                        }
                        else if(k>1)
                        {
                            if(data[i][j]==0&&k!=0)
                            {
                                data[i][j]=1;
                                k--;
                            }
                            if(data[j][i]==0&&k!=0)
                            {
                                data[j][i]=1;
                                k--;
                            }
                        }
                    }
                    if(k==0) break;
                }
            }
            for(int i=0;i<n;i++)
            {
                for(int j=0;j<n;j++)
                {
                    cout<<data[i][j];
                    if(j!=(n-1)) cout<<" ";
                }
                cout<<endl;
            }
        }
    }
    return 0;
}

 

Educational Codeforces Round 20 A. Maximal Binary Matrix(模拟)