hdu 5613 /BC 69D Baby Ming and Binary image
来源:互联网 发布:windows 7传统窗口 编辑:程序博客网 时间:2024/06/05 07:32
开始时漏看了题意 没看到第一行和最后一行是空的 还以为要网络流什么的 后面仔细看了一下 才看懂 白书上有一道类似的做法
枚举第一排的摆放 推出剩余排 注意最后要坚持 最后一行和一列的是否满足输入矩阵要求 得到的ans 最后一行和一列必须为0
#include<iostream>#include<cstdio>#include<cstring>#include<cctype>#include<cmath>#include<vector>#include<queue>#include<map>#include<algorithm>#include<set>#define scnaf scanf#define cahr char#define bug puts("bugbugbug");using namespace std;typedef long long ll;const int mod=1000000007;const int maxn=150+5;const int inf=1e9;const double eps=1e-8;int a[maxn][maxn];int b[maxn][maxn];int c[maxn];int ans[maxn][maxn];int n,m;int cnt;int sum(int x,int y){ int ans=0; for(int i=x-1;i<=x+1;i++) for(int j=y-1;j<=y+1;j++) ans+=b[i][j]; return ans;}int go(){ memset(b,0,sizeof(b)); for(int i=1;i<=n;i++){ b[i][1]=c[i]; } for(int j=2;j<=m;j++) { b[1][j]=0; for(int i=2;i<=n;i++){ b[i][j]=a[i-1][j-1]-sum(i-1,j-1); if(b[i][j]!=1&&b[i][j]!=0) return 0; if(i==n&&b[i][j])return 0; } } for(int i=1;i<=n;i++) for(int j=1;j<=m;j++){ if(a[i][j]!=sum(i,j)) return 0; } if(++cnt>1) return 0; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) ans[i][j]=b[i][j];}int dfs(int id){ if(id==n){ c[id]=0; go(); return 0; } if(cnt>1)return 0; c[id]=1; dfs(id+1); c[id]=0; dfs(id+1);}int main(){ int T_T; scanf("%d",&T_T); while(T_T--){ memset(a,0,sizeof(a)); scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) for(int j=1;j<=m;j++){ scanf("%d",&a[i][j]); } cnt=0; c[1]=0; dfs(2); if(cnt>1) puts("Multiple"); else if(cnt==0) puts("Impossible"); else { for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) printf("%d%c",ans[i][j],j==m?'\n':' '); } } return 0;}
0 0
- hdu 5613 /BC 69D Baby Ming and Binary image
- HDU 5613:Baby Ming and Binary image
- hdu 5613 Baby Ming and Binary image
- HDU 5613(Baby Ming and Binary image-扫雷搜索)
- HDU 5613 Baby Ming and Binary image(暴力)
- HDU 5613 Baby Ming and Binary image(枚举)
- HDOJ 5613 Baby Ming and Binary image
- hdu 5610 /BC 69A Baby Ming and Weight lifting
- hdu 5611 /BC 69B Baby Ming and phone number
- hdu 5612 /BC 69C Baby Ming and Matrix games
- HDU 5610/BC 69E Baby Ming and Matrix tree
- HDU 5613 Baby Ming and Binary image(扫雷地图的还原)
- hdu5613 Baby Ming and Binary image
- Baby Ming and phone number(BC)
- Baby Ming and Matrix games(BC)
- HDU 5610: Baby Ming and Weight lifting
- HDU 5611: Baby Ming and phone number
- hdu 5612 Baby Ming and Matrix games
- sentos6.5重启vmware服务及命令启动虚拟机
- 安卓--第十天--蓝牙app实现与BLE设备简单通信
- Python SimpleHTTPServer 实现日志简单的web展示
- Androidx学习笔记(26)--- Android更新SDK Manager
- ASP.Net运行原理与运行机制
- hdu 5613 /BC 69D Baby Ming and Binary image
- pom.xml中各个标签 的意思
- iOS开发--开发细节 (系统cell)
- Android崩溃后重启App心得
- Spring+SpringMVC+Hibernate4搭建
- 让具有导航栏的界面滑动返回
- 白书练习 周期串
- Mac上的抓包工具Charles-破解版
- System.out.println与System.err.println的区别