博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj 3109: [cqoi2013]新数独
阅读量:6472 次
发布时间:2019-06-23

本文共 1997 字,大约阅读时间需要 6 分钟。

1 #include
2 #include
3 using namespace std; 4 int ha[10][10],li[10][10],xi[10][10],a[10][10],bh[10][10],bl[10][10],kg; 5 char ch[5]; 6 bool pan(int x,int y,int i) 7 { 8 if(ha[x][i]||li[y][i]||xi[(x-1)/3*3+(y-1)/3][i]) 9 return 0;10 if((y-1)%3!=0&&(bh[x][y]^(i>a[x][y-1])))11 return 0;12 if((x-1)%3!=0&&(bl[x][y]^(i>a[x-1][y])))13 return 0;14 return 1; 15 }16 void dfs(int x,int y)17 {18 //if(a[1][1]==4&&a[1][2]==9&&a[1][3]==1&&a[1][4]==7&&a[1][5]==3&&a[1][6]==6&&a[1][7]==5&&a[1][8]==2)19 //{20 //printf(" ");21 //}22 if(kg)23 return;24 if(y==10)25 {26 x++;27 y=1;28 }29 if(x==10)30 {31 kg=1;32 for(int i=1;i<=9;i++)33 {34 for(int j=1;j<=9;j++)35 {36 printf("%d",a[i][j]);37 if(j!=9)38 printf(" ");39 }40 printf("\n");41 }42 return;43 }44 for(int i=1;i<=9;i++)45 if(pan(x,y,i))46 {47 a[x][y]=i;48 ha[x][i]=1;49 li[y][i]=1;50 xi[(x-1)/3*3+(y-1)/3][i]=1;51 dfs(x,y+1);52 ha[x][i]=0;53 li[y][i]=0;54 xi[(x-1)/3*3+(y-1)/3][i]=0;55 }56 }57 int main()58 {59 for(int i=1;i<=9;i++)60 {61 for(int j=1;j<9;j++)62 if(j%3)63 {64 scanf("%s",ch);65 if(ch[0]=='<')66 bh[i][j+1]=1;67 else68 bh[i][j+1]=0;69 }70 if(i%3)71 for(int j=1;j<=9;j++)72 {73 scanf("%s",ch);74 if(ch[0]=='^')75 bl[i+1][j]=1;76 else77 bl[i+1][j]=0;78 }79 }80 dfs(1,1);81 return 0;82 }

一个非常恶心的搜索。

转载于:https://www.cnblogs.com/xydddd/p/5309021.html

你可能感兴趣的文章
linux常用命令-关机、重启
查看>>
css布局 - 九宫格布局的方法汇总(更新中...)
查看>>
画图函数——点,线,矩形等等
查看>>
ejabberd_local
查看>>
BZOJ5020 [THUWC 2017]在美妙的数学王国中畅游LCT
查看>>
hdu 6030 矩阵快速幂
查看>>
tomcat类加载机制
查看>>
ado.net2.0中的缓存使用SqlDependency类
查看>>
Java基础学习总结(94)——Java线程再学习
查看>>
iOS开发之调用系统设置
查看>>
利用 ACPI\\ACPI0003设备 判断笔记本还是台式机
查看>>
解决wampserver 服务无法启动
查看>>
ES6中Promise封装ajax的写法
查看>>
Linux scp 远程文件/目录传输
查看>>
关于fork函数
查看>>
187. 加油站
查看>>
Induction and Recursion and Reduction
查看>>
vue2.0 之 douban (三)创建header组件
查看>>
vue 开发中的常见问题
查看>>
扩展运算符(...) 合并 对象
查看>>