【洛谷P2927 [USACO08DEC]拼图游戏Jigsaw Puzzles】深搜
其实,随便搜了一搜就可以AC了!!!
- -
亏我纠结了这么久= =
1 #include<cstdio> 2 #include<cstdlib> 3 #include<cstring> 4 #include<iostream> 5 #include<algorithm> 6 #include<queue> 7 #include<cmath> 8 using namespace std; 9 #define Maxn 110 10 11 struct node 12 { 13 int num,ax[5]; 14 }t[Maxn]; 15 16 bool cmp(node x,node y) {return x.num<y.num;} 17 18 int r,c; 19 char s[0]; 20 21 int w[10][10],b[10][10]; 22 bool vis[Maxn]; 23 24 void output() 25 { 26 for(int i=1;i<=r;i++) 27 for(int j=1;j<=c;j++) 28 { 29 printf("%d ",t[b[i][j]].num); 30 for(int k=0;k<4;k++) 31 { 32 int x=t[b[i][j]].ax[(k+w[i][j])%4]; 33 if(x==0) printf("0 "); 34 else printf("%c ",x+'a'-1); 35 } 36 printf("\n"); 37 } 38 } 39 40 bool ok=0; 41 42 void ffind(int x,int y) 43 { 44 if(x==r+1) 45 { 46 output(); 47 ok=1; 48 return; 49 } 50 if(y==c+1) {ffind(x+1,1);return;} 51 for(int i=1;i<=r*c;i++) if(!vis[i]) 52 { 53 for(int k=0;k<4;k++) 54 if(t[i].ax[k]==t[b[x-1][y]].ax[(w[x-1][y]+2)%4] && t[i].ax[(k+3)%4]==t[b[x][y-1]].ax[(w[x][y-1]+1)%4]) 55 { 56 if(y==c&&t[i].ax[(k+1)%4]!=0) continue; 57 if(y!=c&&t[i].ax[(k+1)%4]==0) continue; 58 if(x!=r&&t[i].ax[(k+2)%4]==0) continue; 59 if(x==r&&t[i].ax[(k+2)%4]!=0) continue; 60 w[x][y]=k; 61 b[x][y]=i; 62 vis[i]=1; 63 ffind(x,y+1); 64 vis[i]=0; 65 if(ok==1) return; 66 } 67 } 68 } 69 70 int main() 71 { 72 scanf("%d%d",&r,&c); 73 for(int i=1;i<=r*c;i++) 74 { 75 scanf("%d",&t[i].num); 76 for(int k=0;k<4;k++) 77 { 78 scanf("%s",s); 79 if(s[0]=='0') t[i].ax[k]=0; 80 else t[i].ax[k]=s[0]-'a'+1; 81 } 82 } 83 memset(vis,0,sizeof(vis)); 84 for(int i=0;i<4;i++) t[0].ax[i]=0; 85 memset(b,0,sizeof(b)); 86 memset(w,0,sizeof(w)); 87 sort(t+1,t+1+r*c,cmp); 88 ffind(1,1); 89 return 0; 90 }
View Code
2016-11-14 21:56:40
转载于:https://www.cnblogs.com/Konjakmoyu/p/6063605.html
【洛谷P2927 [USACO08DEC]拼图游戏Jigsaw Puzzles】深搜相关推荐
- 洛谷P1902刺杀大使(二分+深搜
某组织正在策划一起对某大使的刺杀行动.他们来到了使馆,准备完成此次刺杀,要进入使馆首先必须通过使馆前的防御迷阵. 迷阵由 n\times mn×m 个相同的小房间组成,每个房间与相邻四个房间之间有门可 ...
- 洛谷P1129 [ZJOI2007] 矩阵游戏 题解
洛谷P1129 [ZJOI2007] 矩阵游戏 题解 题目链接:P1129 [ZJOI2007] 矩阵游戏 题意:给定一张有黑白棋子的正方形棋盘,问存不存在解法使得经过若干次交换行或列的操作后,左上角 ...
- 洛谷解题P1000 超级玛丽游戏(C++)
此文章关于洛谷P1000 超级玛丽游戏 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/problem/P1000题目的解析: 先看题 ...
- 洛谷 P2921 [USACO08DEC]在农场万圣节Trick or Treat on the Farm
题目描述 每年,在威斯康星州,奶牛们都会穿上衣服,收集农夫约翰在N(1<=N<=100,000)个牛棚隔间中留下的糖果,以此来庆祝美国秋天的万圣节. 由于牛棚不太大,FJ通过指定奶牛必须遵 ...
- 【bzoj3240 洛谷P1397】矩阵游戏[NOI2013](矩阵乘法+卡常)
题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3240 这道题其实有普通快速幂+费马小定理的解法--然而我太弱了,一开始只想到了矩阵乘法的 ...
- [洛谷P2584][ZJOI2006]GameZ游戏排名系统
题目大意:同[洛谷P4291][HAOI2008]排名系统(双倍经验) 题解:略 卡点:无 C++ Code: #include <cstdio> #include <map> ...
- 【蓝桥杯】 数独游戏 (经典深搜题型)
你一定听说过"数独"游戏. 如[图1.png],玩家需要根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行.每一列.每一个同色九宫内的数字均含1-9,不重复. 数独 ...
- 洛谷P2252 取石子游戏(威佐夫博弈)
题目背景 无 题目描述 有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取石子.游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子:二是可以在两堆中同时取走相同数量的石子.最后 ...
- 洛谷——P1640 [SCOI2010]连续攻击游戏
P1640 [SCOI2010]连续攻击游戏 题目描述 lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示.当他使用某种装备 ...
最新文章
- 把本地mysql备份到服务器innodb_使用mysql备份工具innobackupex将本地数据 直接恢复 到远端服务器数据目录操作实例...
- python3.8安装pip-CentOS7.2安装python3.8与pip
- WPS for Linux(ubuntu)字体缺失解决办法(转)
- 4.4 使用STM32控制MC20进行GPS帧数据解析
- java中循环语句_Java语法基础之循环结构语句详解
- C#lock语句用法(lock到底有什么用?)
- 『数据库』数据库系统效率Max--数据库并发控制
- 关于异或的一些东西和应用
- think php上传图片,基于ThinkPHP5.0实现图片上传插件
- python函数默认参数_Python中函数的默认参数问题
- Android 资源和国际化
- 【渝粤题库】广东开放大学 岭南文化概论 形成性考核
- ALSA子系统(十三)------snd_pcm_hw_refine硬件参数重定义
- [ROS] KDL + DH 参数 + 正解
- 什么蓝牙耳机的延迟最低?2022延迟最低的蓝牙耳机推荐
- 《C++ Primer》读书笔记——第十三章_拷贝控制
- 手机端微信传动文件,超出文件限制,怎么办?
- OpenCV:minMaxLoc vs minMaxIdx
- spring-注解实现自动装配
- CSRF(跨站请求伪造)原理
热门文章
- python输出变量代码_Python中变量的输入输出实例代码详解
- 华为交换机忘了密码如何恢复
- 春色满园关不住,带你体验阿里云 Knative
- php 判断5张牌是不是顺子,从扑克牌中随机抽取5张牌,判断是不是一个顺子,即这5张牌是不是连续(面试题)...
- r语言和metawin_Windows下使用Rtools编译R语言包
- Vbox linux虚拟机桥接(VM操作也类似)
- ua获取手机型号_取证人员为什么很难从移动设备上获取电子数据证据?
- cdmp不停增长 oracle_Stream异常导致Oracle不断产生trc文件
- python键盘输入数组_python 二维数组切割Python读取键盘输入的2种方法
- 项目代码从GitHub上克隆到本地