HDU 5613 Baby Ming and Binary image
因为第一行和最后一行都是0,我们只需枚举最左边或最右边一列的01情况,即可得到整张表
然后再检验表是否符合要求
#include<cstdio>
#include<cstring>
#include<vector>
#include<cmath>
#include<queue>
#include<list>
#include<algorithm>
using namespace std; int T;
int n,m;
int a[][],ans[][],pri[][];
int b[];
int num;
int Y; bool f(int x,int y)
{
if(x>=&&x<n&&y>=&&y<m) return ;
return ;
} int getSum(int i,int j)
{
int res=;
if(f(i-,j-)) res=res+ans[i-][j-];
if(f(i-,j)) res=res+ans[i-][j];
if(f(i-,j+)) res=res+ans[i-][j+];
if(f(i,j-)) res=res+ans[i][j-];
if(f(i,j)) res=res+ans[i][j];
if(f(i,j+)) res=res+ans[i][j+];
if(f(i+,j-)) res=res+ans[i+][j-];
if(f(i+,j)) res=res+ans[i+][j];
if(f(i+,j+)) res=res+ans[i+][j+];
return res;
} void dfs(int tot)
{
if(tot==n-)
{
bool fail=; //填表
memset(ans,,sizeof ans);
for(int i=;i<m;i++) ans[][i]=,ans[n-][i]=;
for(int i=;i<=n-;i++) ans[i][]=b[i-];
for(int j=;j<=m-;j++)
for(int i=;i<=n-;i++)
ans[i][j]=a[i-][j-]-getSum(i-,j-); //填完检查
for(int i=;i<n;i++)
{
for(int j=;j<m;j++)
{
if(a[i][j]!=getSum(i,j)) fail=;
if(ans[i][j]!=&&ans[i][j]!=) fail=;
}
} if(fail==)
{
num++;
if(num==) Y=;
else if(num==)
{
for(int i=;i<n;i++)
for(int j=;j<m;j++)
pri[i][j]=ans[i][j];
}
}
return;
} b[tot]=;
dfs(tot+); if(Y) return;
b[tot]=;
dfs(tot+); if(Y) return;
} int main()
{
scanf("%d",&T);
while(T--)
{
scanf("%d%d",&n,&m);
for(int i=;i<n;i++)
for(int j=;j<m;j++)
scanf("%d",&a[i][j]);
if(m==)
{
printf("Impossible\n");
continue;
}
num=;Y=;
dfs();
if(Y==) printf("Multiple\n");
else if(num==)
{
for(int i=;i<n;i++)
{
for(int j=;j<m;j++)
{
printf("%d",pri[i][j]);
if(j<m-) printf(" ");
else printf("\n");
}
}
}
else printf("Impossible\n");
}
return ;
}
HDU 5613 Baby Ming and Binary image的更多相关文章
- hdu 5612 Baby Ming and Matrix games
Baby Ming and Matrix games 题意: 给一个矩形,两个0~9的数字之间隔一个数学运算符(‘+’,’-‘,’*’,’/’),其中’/’表示分数除,再给一个目标的值,问是否存在从一 ...
- hdu 5612 Baby Ming and Matrix games(dfs暴力)
Problem Description These few days, Baby Ming is addicted to playing a matrix game. Given a n∗m matr ...
- hdu 5611 Baby Ming and phone number(模拟)
Problem Description Baby Ming collected lots of cell phone numbers, and he wants to sell them for mo ...
- hdu 5610 Baby Ming and Weight lifting
Problem Description Baby Ming is fond of weight lifting. He has a barbell pole(the weight of which c ...
- HDU 5612 Baby Ming and Matrix games(DFS)
题目链接 题解:题意为给出一个N*M的矩阵,然后(i∗2,j∗2) (i,j=0,1,2...)的点处是数字,两个数字之间是符号,其他位置是‘#’号. 但不知道是理解的问题还是题目描述的问题,数据中还 ...
- HDU 5611 Baby Ming and phone number
#include<cstdio> #include<cstring> #include<vector> #include<cmath> #include ...
- HDU 5614 Baby Ming and Matrix tree 树链剖分
题意: 给出一棵树,每个顶点上有个\(2 \times 2\)的矩阵,矩阵有两种操作: 顺时针旋转90°,花费是2 将一种矩阵替换为另一种矩阵,花费是10 树上有一种操作,将一条路经上的所有矩阵都变为 ...
- BestCoder Round #69 (div.2) Baby Ming and Weight lifting(hdu 5610)
Baby Ming and Weight lifting Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K ( ...
- Baby Ming and Matrix games(dfs计算表达式)
Baby Ming and Matrix games Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Ja ...
随机推荐
- bjective-C 中核心处理字符串的类是 NSString 与 NSMutableString
Objective-C 中核心处理字符串的类是 NSString 与 NSMutableString ,这两个类最大的区别就是NSString 创建赋值以后该字符串的内容与长度不能在动态的更改,除非重 ...
- 转:SSH原理与运用(二):远程操作与端口转发
作者:阮一峰 (Image credit: Tony Narlock) 七.远程操作 SSH不仅可以用于远程主机登录,还可以直接在远程主机上执行操作. 上一节的操作,就是一个例子: $ ssh use ...
- Lua 基础 -- 学习笔记
标签(空格分隔): Lua 1. Lua可以一次性给多个变量赋值 变量比赋值多,多的变量就赋值nil 变量比赋值少,多的赋值舍弃 local a, b, c = 1, 2, 3 print( a, b ...
- VMI
在虚拟机外部监控虚拟机内部运行状态的方法被称为虚拟机自省(Virtual Machine Introspection,VMI).VMI允许特权域查看非特权域的运行状态,并能获得被监控虚拟机运行状况相关 ...
- Webdriver+testNG+ReportNG+Maven+SVN+Jenkins自动化测试框架的pom.xml配置
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
- map & flatMap 浅析
我之前一直以为我是懂 map 和 flatMap 的.但是直到我看到别人说:「一个实现了 flatMap 方法的类型其实就是 monad.」我又发现这个熟悉的东西变得陌生起来,本节烧脑体操打算更细致一 ...
- android 代码动态创建视图
LinearLayout 如何动态设置 margin? LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayou ...
- HDU1171--Big Event in HDU(多重背包)
Big Event in HDU Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- java 线程的同步
Example12_7.java public class Example12_7 { public static void main(String args[]) { Bank bank = new ...
- Redis(1)在windows环境下的安装和测试
初次准备使用redis,一个著名的nosql缓存数据库. 这里是第一天,就简单写一下windows下的安装,遇到的一些问题,然后简单的使用和测试,之后会在代码中使用和测试. 之后还会在生产环境中进行测 ...