DFS+剪枝~

#include<bits/stdc++.h>
using namespace std;
int a[][];
int N;
int cnt;
int c[];
int p[];
unordered_map<long long,int> pos;
bool dfs (int v) {
if (v==N*N) return true;
for (int i=;i<cnt;i++) {
if (c[i]==) continue;
if (v%N!=&&a[p[v-]][]!=a[i][]) continue;
if (v/N!=&&a[p[v-N]][]!=a[i][]) continue;
p[v]=i;
c[i]--;
if (dfs(v+)) return true;
else c[i]++;
}
return false;
}
int main () {
int T=;
while (scanf("%d",&N)&&N) {
pos.clear();
cnt=;
int u,d,l,r,k;
for (int i=;i<N*N;i++) {
scanf("%d %d %d %d",&u,&r,&d,&l);
for (k=;k<cnt;k++) {
if(u==a[k][]&&r==a[k][]&&d==a[k][]&&l==a[k][]) break;
}
if (k==cnt) {
cnt++;
a[k][]=u;
a[k][]=r;
a[k][]=d;
a[k][]=l;
c[k]=;
}
else c[k]++;
}
if (T!=) printf("\n");
T++;
if (dfs()) printf ("Game %d: Possible\n",T);
else printf ("Game %d: Impossible\n",T);
}
return ;
}

ZOJ1008 Gnome Tetravex的更多相关文章

  1. ZOJ 1008 Gnome Tetravex(DFS)

    Gnome Tetravex Time Limit: 10 Seconds      Memory Limit: 32768 KB Hart is engaged in playing an inte ...

  2. Gnome Tetravex

    zoj1008:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1008 题目意思是有一个游戏,即给出一个图,该图是由n*n个 ...

  3. [ZOJ 1008]Gnome Tetravex (dfs搜索 + 小优化)

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1008 题目大意:给你n*n的矩阵,每个格子里有4个三角形,分别是 ...

  4. ZOJ 1008 Gnome Tetravex(DFS)

    题目链接 题意 : 将n*n个正方形进行排列,需要判断相邻的正方形的相邻三角形上边的数字是不是都相等. 思路 : 只知道是个深搜,一开始不知道怎么搜,后来看了题解才明白,就是说不是自己去搜,而是将给定 ...

  5. 1008 Gnome Tetravex

    练习使用DPS的题,不知道有无别的做法,思路不复杂.形式是统计并且进行数字配对. #include <stdio.h> ][],note[],ans[]; void ini(){ int ...

  6. zoj 1008 Gnome Tetravex

    开放式存储阵列为每平方米有几个,否则,超时-- #include <stdio.h> #include <string.h> #include <iostream> ...

  7. POJ题目细究

    acm之pku题目分类 对ACM有兴趣的同学们可以看看 DP:  1011   NTA                 简单题  1013   Great Equipment     简单题  102 ...

  8. 【转】POJ百道水题列表

    以下是poj百道水题,新手可以考虑从这里刷起 搜索1002 Fire Net1004 Anagrams by Stack1005 Jugs1008 Gnome Tetravex1091 Knight ...

  9. 如何保存gnome的linux的 会话?相当于windows下的休眠?

    在关机前, 你进行的所有操作, 的集合, 就叫做你跟 linux系统 机器间的 一次 会话, 一个session. linux 可以 在关机时保存 这些session, 保存这些打开的窗口 和程序. ...

随机推荐

  1. keil密钥过期 新注册机 有效期至2032年

    点击下载:keil注册机至2032年

  2. 题解 【Codeforces489B】 BerSU Ball

    本题是排序基础题. 我们可以将a[i].b[i]分别从小到大排序后,依次枚举比较两两组合是否符合要求,最后输出答案ans即可. AC代码: #include <bits/stdc++.h> ...

  3. D. Lunar New Year and a Wander bfs+优先队列

    D. Lunar New Year and a Wander bfs+优先队列 题意 给出一个图,从1点开始走,每个点至少要经过一次(可以很多次),每次经过一个没有走过的点就把他加到走过点序列中,问最 ...

  4. eureka服务只能设置8761,不然服务无法注册

    原因是,eureka服务端和eureka的客户端在一个project下,只是属于不同的模块.所以出现了以上问题.分开项目就好了.

  5. Wx-公众号-关闭内置浏览器页面,返回公众号橱窗

    方法一: pushHistory(); function pushHistory() { var state = { title: "title", url: "#&qu ...

  6. MS Sqlserver删除字段最后的多余字符

    存在这样一些数据 ,,,,dga bc,,aaaa,,,,,,,,dga bc,,aaaa,,,,,,,dga bc,,aaaa,,,,,,,dga bc,,aaaa,,,,,, 需要将最后多余的逗号 ...

  7. Flask 教程 第十六章:全文搜索

    本文翻译自The Flask Mega-Tutorial Part XVI: Full-Text Search 这是Flask Mega-Tutorial系列的第十六部分,我将在其中为Microblo ...

  8. pycharm的一些快捷键[转]

    编辑类: Ctrl + Space 基本的代码完成(类.方法.属性)Ctrl + Alt + Space 类名完成Ctrl + Shift + Enter 语句完成Ctrl + P 参数信息(在方法中 ...

  9. Bugku-CTF加密篇之进制转换(二进制、八进制、十进制、十六进制,你能分的清吗?)

    进制转换 二进制.八进制.十进制.十六进制,你能分的清吗?

  10. v:bind指令对于传boolean值的注意之处

    1,