CF#277(Div.2)B.(预处理)_html/css_WEB-ITnose
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了CF#277(Div.2)B.(预处理)_html/css_WEB-ITnose,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5436字,纯文字阅读大概需要8分钟。
内容图文
B. OR in Matrix
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output题目链接: http://codeforces.com/contest/486/problem/B
Let's define logical OR as an operation on two logical values (i. e. values that belong to the set {0,?1}) that is equal to 1 if either or both of the logical values is set to 1, otherwise it is 0. We can define logical OR of three or more logical values in the same manner:
where is equal to 1 if some ai?=?1, otherwise it is equal to 0.
Nam has a matrix A consisting of m rows and n columns. The rows are numbered from 1 to m, columns are numbered from 1 to n. Element at row i (1?≤?i?≤?m) and column j (1?≤?j?≤?n) is denoted as Aij. All elements of A are either 0 or 1. From matrix A, Nam creates another matrix B of the same size using formula:
.
(Bij is OR of all elements in row i and column j of matrix A)
Nam gives you matrix B and challenges you to guess matrix A. Although Nam is smart, he could probably make a mistake while calculating matrix B, since size of A can be large.
Input
The first line contains two integer m and n (1?≤?m,?n?≤?100), number of rows and number of columns of matrices respectively.
The next m lines each contain n integers separated by spaces describing rows of matrix B (each element of B is either 0 or 1).
Output
In the first line, print "NO" if Nam has made a mistake when calculating B, otherwise print "YES". If the first line is "YES", then also print mrows consisting of n integers representing matrix A that can produce given matrix B. If there are several solutions print any one.
Sample test(s)
input
2 21 00 0
output
NO
input
2 31 1 11 1 1
output
YES1 1 11 1 1
input
2 30 1 01 1 1
output
YES0 0 00 1 0
解题思路:
题目大意就是给你m和n,接下来输入m*n的B矩阵,问是否存在一个m*n的A矩阵,使得对于Bij这个元素来说,它是由A矩阵的第i行所有元素和第j列所有元素“或运算”得来。存在的话输出YES,并输出任意一组符合条件的A矩阵,否则输出NO。
我的方法还是偏暴力,首先开一个二维数组存A矩阵,并对其初始化元素全为1。首先这样考虑,如果Bij对应的值为0,那么A矩阵的第i行和第j列一定全部为0,出现一个1都不行,因为“或运算”全0出0。这样更新一遍后,A矩阵的0的位置就能全部确定了。接下来最暴力的部分O(n*m*max(n,m))的判断A矩阵每个位置的元素是否满足B矩阵中0或1的条件。最后flag没变的话,说明存在这样的A矩阵,同时A矩阵也被我们更新好了,输出即可;反之,不存在输出NO。
完整代码:
#include#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include
#include
内容总结
以上是互联网集市为您收集整理的CF#277(Div.2)B.(预处理)_html/css_WEB-ITnose全部内容,希望文章能够帮你解决CF#277(Div.2)B.(预处理)_html/css_WEB-ITnose所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。