按3x3的小块dfs,填数的时候直接满足所有条件即可

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int N=15;
int a[N][N],ans[N][N];
char b[N][N],c[N][N];
bool v[5][5][N],h[N][N],l[N][N];
char read()
{
char p=getchar();
while(p!='^'&&p!='v'&&p!='<'&&p!='>')
p=getchar();//cerr<<p<<endl;
return p;
}
bool ok(int x,int y,int i)
{//cerr<<b[x][y-1]<<" "<<x<<" "<<y<<" "<<i<<" "<<a[x][y-1]<<endl;
if(h[x][i]||l[y][i])
return 0;
if(y%3!=1)
{
if(b[x][y-1]=='>'&&a[x][y-1]<i)
return 0;
if(b[x][y-1]=='<'&&a[x][y-1]>i)
return 0;
}
if(x%3!=1)
{
if(c[x-1][y]=='^'&&a[x-1][y]>i)
return 0;
if(c[x-1][y]=='v'&&a[x-1][y]<i)
return 0;
}
return 1;
}
void dfs(int p,int q,int x,int y)
{
if(ans[1][1])
return;
if(p==3)
{
for(int i=1;i<=9;i++)
for(int j=1;j<=9;j++)
ans[i][j]=a[i][j];
return;
}
for(int i=1;i<=9;i++)
if(!v[p][q][i]&&ok(p*3+x,q*3+y,i))
{
v[p][q][i]=1,h[p*3+x][i]=1,l[q*3+y][i]=1,a[p*3+x][q*3+y]=i;
if(q==2&&x==3&&y==3)
dfs(p+1,0,1,1);
else if(x==3&&y==3)
dfs(p,q+1,1,1);
else if(y==3)
dfs(p,q,x+1,1);
else
dfs(p,q,x,y+1);
v[p][q][i]=0,h[p*3+x][i]=0,l[q*3+y][i]=0,a[p*3+x][q*3+y]=0;
}
}
int main()
{
for(int i=0;i<3;i++)
{
for(int j=0;j<6;j++)
b[i*3+1][j/2*3+j%2+1]=read();
for(int j=1;j<=9;j++)
c[i*3+1][j]=read();
for(int j=0;j<6;j++)
b[i*3+2][j/2*3+j%2+1]=read();
for(int j=1;j<=9;j++)
c[i*3+2][j]=read();
for(int j=0;j<6;j++)
b[i*3+3][j/2*3+j%2+1]=read();
}
// for(int i=1;i<=9;i++)
// {
// for(int j=1;j<=9;j++)
// cerr<<c[i][j];
// cerr<<endl;
// }
dfs(0,0,1,1);
for(int i=1;i<=9;i++)
{
for(int j=1;j<=9;j++)
printf("%d ",ans[i][j]);
puts("");
}
return 0;
}

bzoj 3109: [cqoi2013]新数独【dfs】的更多相关文章

  1. bzoj 3109: [cqoi2013]新数独

    #include<cstdio> #include<iostream> using namespace std; ][],li[][],xi[][],a[][],bh[][], ...

  2. 3109. [CQOI2013]新数独【DFS】

    Description Input 输入一共15行,包含一个新数独的实例.第奇数行包含左右方向的符号(<和>),第偶数行包含上下方向的符号(^和v).   Output 输出包含9行,每行 ...

  3. B3109 [cqoi2013]新数独 搜索dfs

    就是基于普通数独上的一点变形,然后就没什么了,普通数独就是进行一边dfs就行了. 题干: 题目描述 输入格式 输入一共15行,包含一个新数独的实例.第奇数行包含左右方向的符号(<和>),第 ...

  4. bzoj 3105: [cqoi2013]新Nim游戏 异或高消 && 拟阵

    3105: [cqoi2013]新Nim游戏 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 535  Solved: 317[Submit][Stat ...

  5. BZOJ3109: [cqoi2013]新数独

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3109 搜索一遍.读入注意一下.. #include<cstring> #inclu ...

  6. CQOI2013 新数独

    传送门 这道题也是很暴力的搜索啊…… 因为数独一开始全是空的,只有许许多多的大小限制条件,那也没必要纠结从哪开始搜索了,直接暴力搜索之后判断一下是否合法. 这题最恶心的是读入.现学了一招判断点在哪个块 ...

  7. 【搜索】bzoj3109 [cqoi2013]新数独

    搜索,没什么好说的.要注意读入. Code: #include<cstdio> #include<cstdlib> using namespace std; ][]= {{,, ...

  8. BZOJ 3105 [CQOI2013]新Nim游戏 ——线性基

    [题目分析] 神奇的题目,两人都可以第一次取走足够多堆的石子. nim游戏的规则是,如果异或和为0,那么就先手必输,否则先手有必胜策略. 所以只需要剩下一群异或和为0就可以了. 先排序,线性基扫一遍即 ...

  9. BZOJ 3105: [cqoi2013]新Nim游戏

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3105 题意是要取一些数使得剩余的数xor和的子集不为0 拟阵.求解极大线性无关组.贪心从大到小 ...

随机推荐

  1. background-color

      CreateTime--2017年11月13日09:03:00 Author:Marydon background-color 1.定义 设置背景颜色 2.语法 2.1 使用16进制,以" ...

  2. swift,demo,ios8

    swift交流群:342581988,欢迎增加. 刚刚写的小 demo.搞得还是不是太好.请大家拍砖! 能够直接复制执行 import UIKit class ViewController: UIVi ...

  3. linux上hadoop2.4.0安装配置

    1 环境准备 安装java-1.6(jdk) 安装ssh 1.1 安装jdk (1)下载安装jdk 在/usr/lib下创建java文件夹,输入命令: cd /usr/lib mkdir java 输 ...

  4. c程序设计语言第一章5

    练习1.20请编写程序d e t a b

  5. Mesa (computer graphics)

    http://en.wikipedia.org/wiki/Mesa_(computer_graphics) Mesa (computer graphics) From Wikipedia, the f ...

  6. HDU 2578 Dating with girls(1) [补7-26]

    Dating with girls(1) Time Limit: 6000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Oth ...

  7. iOS Webview 与 app交互

    有时候我们在内嵌的webview中希望点击一个链接之后,触发iOS原生事件,而不是webview内页面跳转(因为webview的跳转很生硬,而ajax+js模拟则不如原生segue平滑). 有时候我们 ...

  8. PowerDesigner逆向工程,从SQL Server数据库生成Physical Model

    提前声明:这种方式貌似只能是Power Designer安装在数据库服务器的时候才可以,因为我按照成功的这个再去从本机逆向连接远程服务器的时候,一直提示:test failed......不讲了,尴尬 ...

  9. mysql优化-------Myisam与innodb引擎,索引文件的区别

    Myisam与innodb引擎,索引文件的区别: innodb的次索引指向对主键的引用. myisam的次索引和主索引都指向物理行. myisam一行一行的插入,会产生一行一行的文件,磁盘上有数据文件 ...

  10. confluence的使用

    搜索文档的技巧 在confluence中进行搜索的时候,也需要使用通配符.比如搜索cmscontext,需要这么搜索cmscontex*,如果搜索的话,cmscontext.geturl是会被过滤掉的 ...