【洛谷P2927 [USACO08DEC]拼图游戏Jigsaw Puzzles】深搜


其实,随便搜了一搜就可以AC了!!!
- -
亏我纠结了这么久= =
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<queue>
#include<cmath>
using namespace std;
#define Maxn 110 struct node
{
int num,ax[];
}t[Maxn]; bool cmp(node x,node y) {return x.num<y.num;} int r,c;
char s[]; int w[][],b[][];
bool vis[Maxn]; void output()
{
for(int i=;i<=r;i++)
for(int j=;j<=c;j++)
{
printf("%d ",t[b[i][j]].num);
for(int k=;k<;k++)
{
int x=t[b[i][j]].ax[(k+w[i][j])%];
if(x==) printf("0 ");
else printf("%c ",x+'a'-);
}
printf("\n");
}
} bool ok=; void ffind(int x,int y)
{
if(x==r+)
{
output();
ok=;
return;
}
if(y==c+) {ffind(x+,);return;}
for(int i=;i<=r*c;i++) if(!vis[i])
{
for(int k=;k<;k++)
if(t[i].ax[k]==t[b[x-][y]].ax[(w[x-][y]+)%] && t[i].ax[(k+)%]==t[b[x][y-]].ax[(w[x][y-]+)%])
{
if(y==c&&t[i].ax[(k+)%]!=) continue;
if(y!=c&&t[i].ax[(k+)%]==) continue;
if(x!=r&&t[i].ax[(k+)%]==) continue;
if(x==r&&t[i].ax[(k+)%]!=) continue;
w[x][y]=k;
b[x][y]=i;
vis[i]=;
ffind(x,y+);
vis[i]=;
if(ok==) return;
}
}
} int main()
{
scanf("%d%d",&r,&c);
for(int i=;i<=r*c;i++)
{
scanf("%d",&t[i].num);
for(int k=;k<;k++)
{
scanf("%s",s);
if(s[]=='') t[i].ax[k]=;
else t[i].ax[k]=s[]-'a'+;
}
}
memset(vis,,sizeof(vis));
for(int i=;i<;i++) t[].ax[i]=;
memset(b,,sizeof(b));
memset(w,,sizeof(w));
sort(t+,t++r*c,cmp);
ffind(,);
return ;
}
2016-11-14 21:56:40
【洛谷P2927 [USACO08DEC]拼图游戏Jigsaw Puzzles】深搜的更多相关文章
- [vijos1159&洛谷1494]岳麓山上打水<迭代深搜>
题目链接:https://vijos.org/p/1159 https://www.luogu.org/problem/show?pid=1494 这是今天的第三道迭代深搜的题,虽然都是迭代深搜的模板 ...
- 洛谷P1118 数字三角形游戏
洛谷1118 数字三角形游戏 题目描述 有这么一个游戏: 写出一个1-N的排列a[i],然后每次将相邻两个数相加,构成新的序列,再对新序列进行这样的操作,显然每次构成的序列都比上一次的序列长度少1,直 ...
- 洛谷P1274-魔术数字游戏
Problem 洛谷P1274-魔术数字游戏 Accept: 118 Submit: 243Time Limit: 1000 mSec Memory Limit : 128MB Probl ...
- 洛谷P1288 取数游戏II(博弈)
洛谷P1288 取数游戏II 先手必胜的条件需要满足如下中至少 \(1\) 条: 从初始位置向左走到第一个 \(0\) 的位置,经过边的数目为偶数(包含 \(0\) 这条边). 从初始位置向右走到第一 ...
- 「区间DP」「洛谷P1043」数字游戏
「洛谷P1043」数字游戏 日后再写 代码 /*#!/bin/sh dir=$GEDIT_CURRENT_DOCUMENT_DIR name=$GEDIT_CURRENT_DOCUMENT_NAME ...
- 洛谷 P2921 [USACO08DEC]在农场万圣节Trick or Treat on the Farm
题目描述 每年,在威斯康星州,奶牛们都会穿上衣服,收集农夫约翰在N(1<=N<=100,000)个牛棚隔间中留下的糖果,以此来庆祝美国秋天的万圣节. 由于牛棚不太大,FJ通过指定奶牛必须遵 ...
- BZOJ1059或洛谷1129 [ZJOI2007]矩阵游戏
BZOJ原题链接 洛谷原题链接 通过手算几组例子后,很容易发现,同一列的\(1\)永远在这一列,且这些\(1\)有且仅有一个能产生贡献,行同理. 所以我们可以只考虑交换列,使得每一行都能匹配一个\(1 ...
- 【题解】洛谷P1080 [NOIP2012TG] 国王游戏(贪心+高精度)
次元传送门::洛谷P1080 思路 我们模拟一下只有两个大臣的时候发现 当a1∗b1<a2∗b2是ans1<ans2 所以我们对所有大臣关于左右手之积进行排序 得到最多钱的大臣就是 ...
- 洛谷P4606 [SDOI2018]战略游戏 【圆方树 + 虚树】
题目链接 洛谷P4606 双倍经验:弱化版 题解 两点之间必经的点就是圆方树上两点之间的圆点 所以只需建出圆方树 每次询问建出虚树,统计一下虚树边上有多少圆点即可 还要讨论一下经不经过根\(1\)的情 ...
随机推荐
- HTML兼容总结
所有浏览器 通用 (市面上主要用到的IE6 IE7 FF)height: 100px; IE6 专用 _height: 100px; IE6 专用 *height: 100px; IE7 专用 *+h ...
- Spark技术内幕:Client,Master和Worker 通信源码解析
http://blog.csdn.net/anzhsoft/article/details/30802603 Spark的Cluster Manager可以有几种部署模式: Standlone Mes ...
- 组装和拆分JSON
1.组装JSON rs["msg"] = "success"; rs[" ...
- ZOJ 1202 Divide and Count(排列组合)
Divide and Count 题目大意:给定箱子的数量和每个箱子的容量,在每个箱子里都装满对应容量的宝石,每颗宝石都是独一无二的,求一共有多少种放置方式.但是如果两个箱子的容量相同,则认为是 同一 ...
- 九度OJ 1386 旋转数组的最小数字 【算法】
题目地址:http://ac.jobdu.com/problem.php?pid=1386 题目描述: 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个递增排序的数组的一个旋 ...
- java 中hashcode和equals 总结
一.概述 在Java中hashCode的实现总是伴随着equals,他们是紧密配合的,你要是自己设计了其中一个,就要设计另外一个.当然在多数情况下,这两个方法是不用我们考虑的,直 ...
- PHOTOSHOP 制作虚线和实线
1.制作实线可以直接用直线工具,选择合适的粗细大小. 2. 制作虚线首先要用钢笔或者绘图工具画出所需要的形状,如弧线,圆形等等 然后在路径面板中用画笔描边,画笔需要提前设置好粗细和间距,用方形 ...
- Win7 钩子 超时 失效
这段时间在程序中,使用了全局钩子,但是在测试时发现,会偶尔失效. 在网上搜索到了这两篇文章: VC底层钩子程序在Win7/Vista下无效 Hooking problem in Windows 7 这 ...
- prefixfree.js介绍
假如你现在正学习着强大的Css3,你知道Css3的很多数属性为实验属性,使用他们的时候得加上各式各样的浏览器前缀.可能你默默忍受了,因为还没到统一的时间.有没想过给自己减下负,偶然间在网上看到一个js ...
- JAVA获取当前日期以及将字符串转成指定格式的日期
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ pac ...