【洛谷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\)的情 ...
随机推荐
- 读jQuery官方文档:数据方法与辅助方法
数据方法 有时候你可能想要在元素上面储存数据.由于浏览器兼容性问题,用原生JavaScript处理元素上的数据可能会造成内存溢出,jQuery可以帮你自动处理这些问题: //储存和取出元素数据 $(' ...
- Lua - 基础语法
Hello World 交互式编程 Lua 交互式编程模式可以通过命令 lua -i 或 lua 来启用: [huey@huey-K42JE lua]$ lua Lua 5.1.4 Copyright ...
- ASP.NET MVC中的统一化自定义异常处理
当ASP.NET MVC程序出现了异常,怎么处理更加规范? 1. 最简单的方法是设置<customErrors/>节点 <customErrors>节点用于定义一些自定义错误信 ...
- Android开发常见问题及解决方法
http://blog.csdn.net/silangquan/article/details/8104414
- 关于ServletConfig的小结
在Servlet的配置文件中,可以使用一个或多个<init-param>标签为servlet配置一些初始化参数.当servlet配置了初始化参数后,web容器在创建servlet ...
- ###《Machine Learning in Action》 - KNN
初学Python:理解机器学习. 算法是需要实现的,纸上得来终觉浅. // @author: gr // @date: 2015-01-16 // @email: forgerui@gmail.com ...
- CStdioFile 写文件
前言: 介绍如何使用 CStdioFile 类去写文件. 完整工程代码,点我下载(请注意工程里面需要包含的 <locale.h>头文件 ) 示例: /// My Add // 获取当前路径 ...
- table表格中加入<a>标签,使内容上下居中的方法。
主要思路:定义好表格单元格的width和height,再加入<a>后,设置<a>的width=100%,height=100%填充整个单元格.那么此时设置上下左右居中样式就只需 ...
- Java多线程-线程的锁总结
一.多线程-同步函数的锁是this /*同步函数用的是哪一个锁呢?函数需要被对象调用.那么函数都有一个所属对象引用.就是this.所以同步函数使用的锁是this. 通过该程序进行验证. 使用两个线程来 ...
- mina2.0 spring
Apache MINA是一个网络应用程序框架,它可以帮助用户开发的高性能.高扩展性的网络应用程序.它提供了一个抽象的事件驱动的异步API在不同传输如TCP/IP和UDP/IP通过java NIO. A ...