题意:给你一个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; }