因为第一行和最后一行都是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的更多相关文章

  1. hdu 5612 Baby Ming and Matrix games

    Baby Ming and Matrix games 题意: 给一个矩形,两个0~9的数字之间隔一个数学运算符(‘+’,’-‘,’*’,’/’),其中’/’表示分数除,再给一个目标的值,问是否存在从一 ...

  2. 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 ...

  3. 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 ...

  4. 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 ...

  5. HDU 5612 Baby Ming and Matrix games(DFS)

    题目链接 题解:题意为给出一个N*M的矩阵,然后(i∗2,j∗2) (i,j=0,1,2...)的点处是数字,两个数字之间是符号,其他位置是‘#’号. 但不知道是理解的问题还是题目描述的问题,数据中还 ...

  6. HDU 5611 Baby Ming and phone number

    #include<cstdio> #include<cstring> #include<vector> #include<cmath> #include ...

  7. HDU 5614 Baby Ming and Matrix tree 树链剖分

    题意: 给出一棵树,每个顶点上有个\(2 \times 2\)的矩阵,矩阵有两种操作: 顺时针旋转90°,花费是2 将一种矩阵替换为另一种矩阵,花费是10 树上有一种操作,将一条路经上的所有矩阵都变为 ...

  8. 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 ( ...

  9. Baby Ming and Matrix games(dfs计算表达式)

    Baby Ming and Matrix games Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Ja ...

随机推荐

  1. ref与out之间的区别整理 摘自与望楼http://blog.csdn.net/xiaoning8201/article/details/6893154

    ref和out都是C#中的关键字,所实现的功能也差不多,都是指定一个参数按照引用传递. 对于编译后的程序而言,它们之间没有任何区别,也就是说它们只有语法区别. 总结起来,他们有如下语法区别: .ref ...

  2. git repository 的使用

    1. You should only be pushing to a bare repository. A bare repository is a repository that has no ch ...

  3. 错误 1 error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 C:\Users\Administ

    错误 1 error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 C:\Users\Administ 这两个fatal error是因为从低版本的WTL到高版本的WTL转变后产生的 ...

  4. oracle提高之索引学习

    一. 索引介绍 1.1  索引的创建 语法 : CREATE UNIUQE | BITMAP INDEX <schema>.<index_name> ON <schema ...

  5. 10款免费Bootstrap后台模板演示及下载

    自从有了类似Bootstrap这样强大的前端框架之后,无论我们是做静态页面,还是做网站主题,着实方便很多.即便有很多类似的其他国产.海外的前端框架比较,Bootstrap用户量以及功能文档还是比较大的 ...

  6. windows程序设计(四)

    对话框常用相关消息映射函数: 一.对话框初始化消息: 1.WM_CREATE:通用窗口初始化消息 窗口还未显示出来,只有父窗口,子窗口还没创建 2.WM_INITDIALOG:对话框窗口专用消息 子窗 ...

  7. lucene 中关于Store.YES 关于Store.NO的解释

    总算搞明白 lucene 中关于Store.YES  关于Store.NO的解释了 一直对Lucene Store.YES不太理解,网上多数的说法是存储字段,NO为不存储. 这样的解释有点郁闷:字面意 ...

  8. Linux学习 -- Shell基础 -- 概述

    Shell是什么? 命令解释器 编程语言 Linux支持的Shell类型 cat /etc/shells 主要学习 bash 脚本执行方式 echo echo -e 单引号 -- 原始字符串  双引号 ...

  9. Landsat TM DN值转为表观反射率

    日地距离计算参见<中华人民共和国气象行业标准太阳能资源评估方法>  

  10. android 5.0新特性学习--视图阴影

    android 5.0的视图阴影主要是体验出层次性,就是在一个物体上面叠加上一层的设计,而这种设计就是除了传统的,x,y的纸面层,还有就是透过纸面的z轴的层次设计. elevation: 高度,静态属 ...