http://poj.org/problem?id=2676

递归深搜

#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<stdlib.h>
#include<math.h>
#include<iostream> using namespace std; #define N 100
#define INF 0xffffffff
#define memset(a,b) memset(a,b,sizeof(a)) int a[][]; struct node
{
int x,y;
} e[N];
int sum; int v1[N][N],v2[N][N],v3[N][N], ok; void DFS(int p)
{ if(p>sum)
{
ok=;
return;
} for(int i=; i<=; i++)
{
if(!ok)
if(v1[e[p].x][i]== && v2[e[p].y][i]== && v3[(e[p].x/)*+e[p].y/][i]==)
{
a[e[p].x][e[p].y]=i;
v1[e[p].x][i]=;
v2[e[p].y][i]=;
v3[(e[p].x/)*+e[p].y/][i]=; DFS(p+); // a[e[p].x][e[p].y]=0;
v1[e[p].x][i]=;
v2[e[p].y][i]=;
v3[(e[p].x/)*+e[p].y/][i]=;
}
}
} int main()
{
int T;
scanf("%d ",&T);
while(T--)
{
memset(v1,);
memset(v2,);
memset(v3,);
ok=sum=;
char str[N];
for(int i=; i<; i++)
{
scanf("%s",str);
for(int j=; j<; j++)
{
a[i][j]=str[j]-'';
if(a[i][j]!=)
{
v1[i][a[i][j]]=;
v2[j][a[i][j]]=;
v3[(i/)*+j/][a[i][j]]=;
}
else
{
sum++;
e[sum].x=i;
e[sum].y=j;
}
}
}
DFS();
for(int i=; i<; i++)
{
for(int j=; j<; j++)
{
printf("%d",a[i][j]);
}
printf("\n");
} }
return ;
}

最新文章

  1. Oracle学习总结_day01_day02_表的创建_增删改查_约束
  2. 定位frame 中的对象
  3. Container Stack
  4. sublime Text 3 Package Control 安装代码
  5. Python自动化运维之19、Paramiko模块和堡垒机实战
  6. INSERT command denied to user
  7. Qt编程之QtScript
  8. iOS开发网络篇之文件下载、大文件下载、断点下载
  9. 原生js实现简单的全屏滚动
  10. 手机web——自适应网页设计(html/css控制)【转】
  11. sql查询重复值
  12. python之集合set
  13. java springboot2 jquery 抽奖项目源码
  14. weblogic系列漏洞整理 -- 1. weblogic安装
  15. BZOJ.2177.曼哈顿最小生成树(Kruskal)
  16. PAT 1087 有多少不同的值(20)(STL—set)
  17. .net4.0 请求HTTPS出错:未能创建 SSL/TLS 安全通道
  18. [框架模式]经典的模型视图控制器模式MVC
  19. 雷林鹏分享:Ruby 类案例
  20. lnmp环境一键搭建及卸载

热门文章

  1. 聊聊JavaScript和Scala的表达式 Expression
  2. 在同一页面显示多个JavaScript统计图表
  3. Node + Express + MySQL 接口开发完整案例
  4. java_日期和时间
  5. Crashlytics Android 异常报告统计管理
  6. PHP21 MVC
  7. Java中的类加载器--Class loader
  8. List&lt;T&gt;排序
  9. JS数组专题1️⃣ ➖ 数组扁平化
  10. 「 HDOJ P2227 」 Find the nondecreasing subsequences