本文主要是介绍Codeforces803A Maximal Binary Matrix(模拟),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目链接:http://codeforces.com/contest/803/problem/A
题目大意:给你一个全是0的n x n 的矩阵,让你填充k个1,使得这个矩阵的字典序最大,矩阵字典序最大就是:从上往下从左往右依次填充,还要满足矩阵对称,也就是。
思路:一开始理解错题意了,正确的做法就是从上往下对称填1,当i == j的时候直接填1就可以了。
AC代码:
#include<bits/stdc++.h>
using namespace std;
const int maxn = 200;
int a[maxn][maxn], n, k;
int main()
{scanf("%d%d",&n,&k);if(k > n*n) { puts("-1"); return 0;}for(int i = 1; i <= n; i++)for(int j = 1; j <= n; j++)if(a[i][j])continue;else{if(i == j and k) {a[i][j] = 1; k--; continue;}if(k >= 2) k -= 2, a[i][j] = a[j][i] = 1;}for(int i = 1; i <= n; i++){for(int j = 1; j <= n; j++) printf("%d ",a[i][j]);printf("\n");}return 0;
}
这篇关于Codeforces803A Maximal Binary Matrix(模拟)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!