#include<iostream>
#include<vector>
#include<string>
#include<set>
#include<map>
#include<algorithm>
#include<queue>
#include<list>
#include<stack>
#include<cstdio>
#include<fstream>
#include<numeric>
#include<functional>
#include<utility>
#include<memory>
using namespace std;
using namespace placeholders;
int main(){
int n, k;
while (cin >> n >> k){
if (k > 10000){
cout << "-1" << endl;
}
else{
vector<vector<int>> matrix(n, vector<int>(n, 0));
int row = 0;
while (k >0 && row<n){
int col = row;
matrix[row][col] = 1;
k--;
col++;
while (col < n&&k >= 2){
matrix[row][col] = 1;
k--;
matrix[col][row] = 1;
k--;
col++;
}
row++;
}
if (k == 0){
for (int i = 0; i < n; i++){
for (int j = 0; j < n; j++) cout << matrix[i][j] << " ";
cout << endl;
}
}
else{
cout << "-1" << endl;
}
}
}
return 0;
}803A Maximal Binary Matrix
最新推荐文章于 2023-10-31 10:37:34 发布
本文介绍了一个算法,该算法根据输入的整数n和k构建一个n×n的矩阵,矩阵中包含1和0,目标是在满足特定条件的情况下尽可能多地填充1。如果无法达到预期状态,则输出-1。

626

被折叠的 条评论
为什么被折叠?



