【codeforces486B】OR in Matrix(思维)
来源:互联网 发布:wlan网络维护招聘 编辑:程序博客网 时间:2024/05/16 17:08
本题就是先求出A数列,然后求出对应的正确的B,再与所给的实际的B一一对比,如果全都相同则YES,否则错误。
#include<cstdio>#include<iostream>#include<cstring>#include<cmath>#include<algorithm>using namespace std;const int N = 105;int row[N],col[N];bool visr[N],visc[N],vis[N][N];int a[N][N],d[N][N];int main() {int n,m;while(scanf("%d%d",&m,&n)!=EOF) {for(int i=0; i<m; i++) {for(int j=0; j<n; j++) {scanf("%d",&a[i][j]);}}memset(row,0,sizeof(row));memset(col,0,sizeof(col));for(int i=0; i<m; i++) {for(int j=0; j<n; j++) {if(a[i][j]==0) {row[i]=1;col[j]=1;}}}int flag=0;memset(visr,0,sizeof(visr));memset(visc,0,sizeof(visc));for(int i=0; i<m; i++) {for(int j=0; j<n; j++) {if(!row[i]&&!col[j]) {vis[i][j]=1;visr[i]=1;visc[j]=1;}}}memset(d,0,sizeof(d));for(int i=0; i<m; i++) {for(int j=0; j<n; j++) {if(visr[i]||visc[j]) {d[i][j]=1;}if(a[i][j]!=d[i][j]) {flag=1;}}}if(flag) {printf("NO\n");continue;} else {printf("YES\n");for(int i=0; i<m; i++) {for(int j=0; j<n; j++) {if(j==n-1)printf("%d\n",vis[i][j]);elseprintf("%d ",vis[i][j]);}}}}return 0;}
0 0
- 移动应用实战(移动OA)之二_jQuery Mobile简介
- mysql和sqlserver在使用update inner join时的区别
- Nodejs 调试方法
- Google 面试题 | Palindrome Partitioning II
- 【java】根据路径删除项目下上传的文件
- 【codeforces486B】OR in Matrix(思维)
- Python:迭代器与生成器
- java项目中使用springmvc的调度任务
- iOS10 新特性适配Label显示不全问题
- 排名前50的开源Web爬虫用于数据挖掘
- Zookeeper(4)-Zookeeper启动过程
- 英文及数字验证码
- Codeforces 344E Read Time [二分答案]【思维】
- Redis快速入门