其实,随便搜了一搜就可以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】深搜相关推荐

  1. 洛谷P1902刺杀大使(二分+深搜

    某组织正在策划一起对某大使的刺杀行动.他们来到了使馆,准备完成此次刺杀,要进入使馆首先必须通过使馆前的防御迷阵. 迷阵由 n\times mn×m 个相同的小房间组成,每个房间与相邻四个房间之间有门可 ...

  2. 洛谷P1129 [ZJOI2007] 矩阵游戏 题解

    洛谷P1129 [ZJOI2007] 矩阵游戏 题解 题目链接:P1129 [ZJOI2007] 矩阵游戏 题意:给定一张有黑白棋子的正方形棋盘,问存不存在解法使得经过若干次交换行或列的操作后,左上角 ...

  3. 洛谷解题P1000 超级玛丽游戏(C++)

    此文章关于洛谷P1000 超级玛丽游戏 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/problem/P1000题目的解析: 先看题 ...

  4. 洛谷 P2921 [USACO08DEC]在农场万圣节Trick or Treat on the Farm

    题目描述 每年,在威斯康星州,奶牛们都会穿上衣服,收集农夫约翰在N(1<=N<=100,000)个牛棚隔间中留下的糖果,以此来庆祝美国秋天的万圣节. 由于牛棚不太大,FJ通过指定奶牛必须遵 ...

  5. 【bzoj3240 洛谷P1397】矩阵游戏[NOI2013](矩阵乘法+卡常)

    题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3240 这道题其实有普通快速幂+费马小定理的解法--然而我太弱了,一开始只想到了矩阵乘法的 ...

  6. [洛谷P2584][ZJOI2006]GameZ游戏排名系统

    题目大意:同[洛谷P4291][HAOI2008]排名系统(双倍经验) 题解:略 卡点:无 C++ Code: #include <cstdio> #include <map> ...

  7. 【蓝桥杯】 数独游戏 (经典深搜题型)

    你一定听说过"数独"游戏. 如[图1.png],玩家需要根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行.每一列.每一个同色九宫内的数字均含1-9,不重复. 数独 ...

  8. 洛谷P2252 取石子游戏(威佐夫博弈)

    题目背景 无 题目描述 有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取石子.游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子:二是可以在两堆中同时取走相同数量的石子.最后 ...

  9. 洛谷——P1640 [SCOI2010]连续攻击游戏

    P1640 [SCOI2010]连续攻击游戏 题目描述 lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示.当他使用某种装备 ...

最新文章

  1. 把本地mysql备份到服务器innodb_使用mysql备份工具innobackupex将本地数据 直接恢复 到远端服务器数据目录操作实例...
  2. python3.8安装pip-CentOS7.2安装python3.8与pip
  3. WPS for Linux(ubuntu)字体缺失解决办法(转)
  4. 4.4 使用STM32控制MC20进行GPS帧数据解析
  5. java中循环语句_Java语法基础之循环结构语句详解
  6. C#lock语句用法(lock到底有什么用?)
  7. 『数据库』数据库系统效率Max--数据库并发控制
  8. 关于异或的一些东西和应用
  9. think php上传图片,基于ThinkPHP5.0实现图片上传插件
  10. python函数默认参数_Python中函数的默认参数问题
  11. Android 资源和国际化
  12. 【渝粤题库】广东开放大学 岭南文化概论 形成性考核
  13. ALSA子系统(十三)------snd_pcm_hw_refine硬件参数重定义
  14. [ROS] KDL + DH 参数 + 正解
  15. 什么蓝牙耳机的延迟最低?2022延迟最低的蓝牙耳机推荐
  16. 《C++ Primer》读书笔记——第十三章_拷贝控制
  17. 手机端微信传动文件,超出文件限制,怎么办?
  18. OpenCV:minMaxLoc vs minMaxIdx
  19. spring-注解实现自动装配
  20. CSRF(跨站请求伪造)原理

热门文章

  1. python输出变量代码_Python中变量的输入输出实例代码详解
  2. 华为交换机忘了密码如何恢复
  3. 春色满园关不住,带你体验阿里云 Knative
  4. php 判断5张牌是不是顺子,从扑克牌中随机抽取5张牌,判断是不是一个顺子,即这5张牌是不是连续(面试题)...
  5. r语言和metawin_Windows下使用Rtools编译R语言包
  6. Vbox linux虚拟机桥接(VM操作也类似)
  7. ua获取手机型号_取证人员为什么很难从移动设备上获取电子数据证据?
  8. cdmp不停增长 oracle_Stream异常导致Oracle不断产生trc文件
  9. python键盘输入数组_python 二维数组切割Python读取键盘输入的2种方法
  10. 项目代码从GitHub上克隆到本地