
Search Algorithm
文章平均质量分 72
秋水忆秦谣
三更灯火五更鸡,正是男儿读书时。 黑发不知勤学早,白首方悔读书迟。
展开
-
51NOD 1384 全排列
dfs 即可,要求字典序而且不重复。开始的时候用map判重。结果有几个样例TLE了。然后我就直接全部搜出来,然后排序去重。过了。#include#include#include#include#include#include#include#include//#include//#include//#include#include//#include#原创 2015-08-20 12:14:14 · 1144 阅读 · 0 评论 -
HDU 1072 Nightmare
bfs问题。走迷宫,有炸弹时限,有重置炸弹时间的机器。注意有些位置走过之后,按了重置器后依然可以入队。所以检查变成 vis[][][]三维的。当然同一个重置器反复去走也没有意义,所以重置器检查 rest[][]。走到重置器的时候,炸弹时间变回去,路径时间+1,重置器rest[][]=1其他时候炸弹时间不变,路径时间+1#include#includ原创 2014-09-18 11:17:14 · 955 阅读 · 0 评论 -
HDU 1426 Sudoku Killer
数独(DFS)。很忧伤的一道题,先是剪枝的三个数组开成[9][9]导致 越界了WA。然后就是每两组输出之间有空行,但是最后一组后面不能输出空行。PE好多次。#include#include#include#include#include#include#include#include#include#include#include#def原创 2014-09-17 10:40:52 · 812 阅读 · 0 评论 -
HDU 1043 Eight
八数码问题。BFS+康托展开。康托用来判重。直接搜的的话会超时。需要预处理。我就用结构体存了一个状态。struct lx{ int can;//当前状态的康托展开 int pcan;//上一状态的康托展开 int k;//移动方向};把所有的 181442 种状态存下来。排序,然后二分搜索。迭代寻找上一状态,直到初始的 0 。原创 2014-09-16 17:18:33 · 696 阅读 · 0 评论 -
POJ 1207 The 3n + 1 problem
水题,直接筛一下就好。不过需要注意输出。自己学校的渣OJ 的数据范围才叫大:All integers will be less than 10,000,000 and greater than 0.跑了1.7ms。时限2ms。POJ这道题数据范围是:All integers will be less than 10,000 and greater than 0.直接所有原创 2014-08-29 10:36:56 · 569 阅读 · 0 评论 -
POJ 1077 Eight
八数码问题。BFS+康托展开很经典的题。问你怎么移动恢复到初始状态。一开始上下左右的方向搞错了,而且因为是多种答案(Special Judge)所以WA了好几次,于是一步一步打印出来。终于对了。跑了360ms。ORZ 0ms的大神。 交HDU 的 1070 就无限TLE 。继续优化好了。(自认为自己的逆康托展开写得不好)#include#inclu原创 2014-09-11 09:56:16 · 666 阅读 · 0 评论 -
HDU 1181 变形课
多种解法,水题。DFS,BFS,最短路。只要B开头能到M结尾。我建立的最短路模型,然后SPFA。。花式AC。。#include#include#include#include#include#include#include#include#include#include#include#include#define INF 0x7fffff原创 2014-09-20 21:44:38 · 836 阅读 · 0 评论 -
HDU 1180 诡异的楼梯
bfs问题。题意是说爬楼梯的时候,有些楼梯是 “ | ”,有些是“ - ”。而且每隔一分钟就互相变化形态。“ | ”只能上下,“ - ”只能左右。爬楼梯的过程中,会变的楼梯不能停留,其他的可以停留。爬楼梯需要一个单位时间,假如是“ - ”表明一个单位时间从它左边到它右边或者 右边到左边。楼梯停留多次没有意义,特殊楼梯只有2种旋转状态,多一个wait[][] 检查就可以。原创 2014-09-20 19:24:05 · 1070 阅读 · 0 评论 -
HDU 1026 Ignatius and the Princess I
简单bfs问题。迷宫左上角是入口,右下角是出口,迷宫中有战斗力为1~9的守卫,打败他们需要1~9的时间。遇到怪物判一下就可以了。步骤倒序输出即可。由于需要记录步骤,不适用STL的queue。#include#include#include#include#include#include#include#include#include#include原创 2014-09-19 09:23:10 · 920 阅读 · 0 评论 -
HDU 1010 Tempter of the Bone
dfs+剪枝题意是说原创 2014-09-19 08:23:24 · 723 阅读 · 0 评论 -
HDU 1242 Rescue
bfs问题。Angel有被关在监狱,她有很多朋友要去救她。#表示墙,.表示路,x表示警卫,r表示她的朋友。由于可能有很多朋友,但是Angel只有一个,所以搜索起点设为Angel。只要找到一个朋友表示能走出去。走一格需要1,杀死警卫需要1,但是不能直接加2.因为会出现这种情况4 8axxxxxxr........................原创 2014-09-18 20:32:41 · 707 阅读 · 0 评论 -
HDU 1429 胜利大逃亡(续)
bfs+状态压缩。水题。一开始我很挫的用了 vis[21][21][2][2][2][2][2][2][2][2][2][2]; G++,300+ms;然后后来想到可以用二进制啊。笨。就改成了 vis[21][21][1024] G++,78ms;#include#include#include#include#include#include#inclu原创 2014-10-22 09:21:24 · 727 阅读 · 0 评论 -
BestCoder Round #11 (Div. 2)
太菜,只能去Div2.(都做不完 ORZ。。。分别是 HDU: 5054 Alice and Bob5055 Bob and math problem5056 Boring count5057 Argestes and Sequence# 1001 碰面只能在坐标中间。所以判断一下就好了。#include#include原创 2014-09-28 21:25:15 · 1105 阅读 · 0 评论 -
HDU 2102 A计划
水bfs。 只需要判断一下 #之后还是*或#都是死路。只有两层。#include#include#include#include#include#include#include#include#include#include#include#include#define INF 0x7fffffff#define eps 1e-8#define LL lo原创 2014-10-28 15:25:59 · 618 阅读 · 0 评论 -
HDU 2579 Dating with girls(2)
补考跪了。果然我讨厌网络技术……学什么cisco的软件操作。简直!!!计算机网络的东西讲得又浅。发的又是一本纯英文的《计算机网络》的书。真装逼的学校。字典一样厚,我真想砸死你!真是看得起我们,985,211的本科都没这么屌。赶紧做几道题压压惊。随机翻一页,题目倒是不错,约会……题意简单,就是找妹子约会(Orz)。迷宫的#代表石头,在k的倍数的时候不能走。记得vis为三维原创 2015-03-30 21:03:27 · 514 阅读 · 0 评论 -
第五届蓝桥杯C/C++本科B组(真题试做)(9~10)
第九题 迷宫取宝标题:地宫取宝 X 国王有一个地宫宝库。是 n x m 个格子的矩阵。每个格子放一件宝贝。每个宝贝贴着价值标签。 地宫的入口在左上角,出口在右下角。 小明被带到地宫的入口,国王要求他只能向右或向下行走。 走过某个格子时,如果那个格子中的宝贝价值比小明手中任意宝贝价值都大,小明就可以拿起它(当然,也可以不拿)。 当小明走到出口时,原创 2015-01-29 17:30:11 · 1173 阅读 · 0 评论 -
UVA 10285 Longest Run on a Snowboard
记忆化搜索,跟以前的做过的 滑雪 一样的。DP+DFS。用dp[][]保存搜索记录,然后满足条件累加即可。#include#include#include#include#include#include#include#include#include#include#include#include#include#define INF 0x7ffffff原创 2014-11-24 11:54:21 · 769 阅读 · 0 评论 -
HDU 1258 Sum It Up (POJ 1564)
以前做过,碰巧看到了。我去复制了一下。很奇怪……交POJ的程序交HDU 就WA。然后重写,交HDU的程序AC后再去交 POJ 居然TLE。简直……简单DFS,判重就好了。HDU :#include#include#include#include#include#include#include#include#include#include#inc原创 2014-11-07 09:38:26 · 757 阅读 · 0 评论 -
HDU 1728 逃离迷宫
bfs搞清楚是转弯而不是步数。所以需要一个方向一直走下去直到边界或者墙。还有就是注意题意。给出起点终点的 x,y 位置是交换的。 题目是下标1开始。注意。#include#include#include#include#include#include#include#include#include#include#include#include#def原创 2014-11-04 10:12:50 · 973 阅读 · 0 评论 -
HDU 1226 超级密码
跟POJ 1465 multiple 类是。只不过多了2个条件,长度不能超过500,还有就是 可能不是十进制。bfs+同余定理,就是用 mod 来判重。G++ 15ms每次枚举一位,然后记录下路径然后输出就可以。此题坑点 当n==0 的时候 如果 m个数中有0 那么答案就是0 如果没有0 就是give me the bomb please这儿坑了我好几次原创 2014-10-30 12:49:47 · 964 阅读 · 0 评论 -
HDU 2612 Find a way
bfs水题。Y和M 一起出发 到达 @ 的位置。求最近的。分别以Y和M做一次bfs 即可。#include#include#include#include#include#include#include#include#include#include#include#include#define INF 0x7fffffff#define eps 1e-8原创 2014-10-30 11:00:17 · 777 阅读 · 0 评论 -
HDU 1253 胜利大逃亡
bfs水题。变成三维而已。定义三维变量就好.int xx[]={0,0,0,0,-1,1};int yy[]={0,0,-1,1,0,0};int zz[]={-1,1,0,0,0,0};这样就和平时做的简单宽搜没什么区别了。#include#include#include#include#include#include#include#include原创 2014-10-30 09:43:50 · 833 阅读 · 0 评论 -
HDU 1885 Key Task
bfs。 一把某种颜色的锁开 所有这个颜色的门。状态检查压缩一下 vis[][][2^4];跟HDU 1429 类似。至于颜色判断我用了 map;#include#include#include#include#include#include#include#include#include#include#include#include#de原创 2014-10-30 22:55:56 · 1046 阅读 · 0 评论 -
HDU 1016 Prime Ring Problem
简单DFS,由 1~N 的数字组成的环。要求相邻两个数相加能组成素数。输入比较小,可以筛一下素数也可以直接判断。 CLR(prime,0); prime[1]=1; for(int i=2;i<101;i++) for(int j=2;i*j<101;j++) prime[i*j]=1;然后dfs一遍即可。#include#i原创 2014-09-18 10:12:13 · 697 阅读 · 0 评论 -
POJ 1562 Oil Deposits
基本就是找相连的油田。注意标记是否被访问。DFS。intput:1 1*3 5*@*@***@***@*@*1 8@@****@*5 5 ****@*@@*@*@**@@@@*@@@**@0 0output:0122#include#includeint x,y,vis[105][105];int a[105][105原创 2013-08-11 18:46:17 · 504 阅读 · 0 评论 -
POJ 2243 Knight Moves
基础宽搜,写在这儿的目的是提醒自己慎用 ~输入的时候老是原创 2014-06-24 16:16:15 · 528 阅读 · 0 评论 -
POJ 1088 滑雪 (Vijos 1011)
记忆化搜索。也就是DP+DFS。将搜索过的存下,下次直接使用。不过可能出现很多点被比他大的点保卫。所以每个点都需要算一次。AC代码#include#include#include#includeusing namespace std;int a[501][501];int dp[501][501];int n,m;int xx[]={1,-1,0,0};int y原创 2014-03-30 00:25:42 · 738 阅读 · 0 评论 -
POJ 3026 Borg Maze
最小生成树+BFS题意是说在迷宫之中找出连接所有点的最小生成树,其他杂项完全不理会,我理解题意就花了好久。我用的Kruskal,输入的时候给每个点标号,然后BFS 每个点,找出最近的所有边,接下来就是模版的Kruskal。因为是迷宫,所以只能用BFS去搜与它相通的每个点的最短路。不过数据有点坑,建议数组开大一点,我提交的时候RE一次,绝对不止100个原创 2014-07-06 02:10:04 · 1139 阅读 · 0 评论 -
HDU 1254 推箱子
一个很有意思的 BFS+DFS。附 数据。本来今天的任务是多重背包,结果为了帮别人找WA点,自己也坑在这道题上了。最好想了一组自己都没过的数据……果断换思路了。以箱子为起点做BFS找最短。每次DFS判断人能不能移动到箱子的后面。开始就我写一个BFS,什么数据都过了。这组过不了17 40 0 0 00 0 1 00 2 0 31原创 2014-07-10 21:05:03 · 1114 阅读 · 0 评论 -
HDU 1045 Fire Net
DescriptionSuppose that we have a square city with straight streets. A map of a city is a square board with n rows and n columns, each representing a street or a piece of wall. A blockhouse is原创 2013-08-11 18:53:04 · 605 阅读 · 0 评论 -
2014 UESTC Training for Search Algorithm Problem A 解救小Q
宽搜签到.注意一下传送点的特殊性比如原创 2014-05-05 16:38:11 · 956 阅读 · 0 评论 -
2014 UESTC Training for Search Algorithm Problem F 方老师与迷宫
又是BFS。只是变成三维而已,还和基友讨论以后会不会出现si'wei原创 2014-05-06 12:15:50 · 947 阅读 · 0 评论 -
POJ 1915 Knight Moves
本机运行原创 2014-06-24 17:00:18 · 508 阅读 · 0 评论 -
POJ 1465 Multiple
嗷嗷嗷。先是RE,再来 WA ,最后TLE。然后找了半天才知道哪儿有问题。RE是yin原创 2014-04-15 14:17:58 · 554 阅读 · 0 评论 -
HDU 4474 Yet Another Multiple Problem
啊啊。WA 得我很无语。。。原创 2014-04-15 19:55:25 · 638 阅读 · 0 评论 -
2014 UESTC Training for Search Algorithm Problem D 方老师与素数
BFS 水题。先筛一下素数就好。原创 2014-05-05 16:42:58 · 1169 阅读 · 0 评论 -
POJ 2488 A Knight's Journey
就是问国际象棋中的骑士能否从A1到指定位置。input:31 12 34 3output:Scenario #1:A1Scenario #2:impossibleScenario #3:A1B3C1A2B4C2A3B1C3A4B2C4要把路径打印出来。用队列存储路径就是了。倒回来存储再打印。#include#includeshort原创 2013-08-11 18:42:55 · 534 阅读 · 0 评论 -
POJ 1011 Sticks
DFS题意是让你把这些木棍组合成长度相等的一些木棍。要求长度最短。#include#include#include#includeusing namespace std;int a[65],n,sum,ans;bool v[65],ok;bool cmpa(int a,int b){ return a>b;}bool dfs(int num,int ne原创 2014-07-25 15:34:14 · 633 阅读 · 0 评论 -
POJ 1780 Code
记录欧拉路径。题意很难懂。英语渣,翻译半天不得要领。看PDF的中文才知道题意。题意:给一个 N (1给出了N=2 的例子。就拿这个说明,太长就说前面的。00102030405060708091121314151617181922324252627282933435363738394454647484955657585966768697787988990原创 2014-07-15 14:54:28 · 950 阅读 · 1 评论 -
HDU 4308 Saving Princess claire_
BFS问题。题意是问 王子救公主 需要花费多少钱。每路过一个 * 就要支付 cost 那么多的钱。求最短。多个P 传送点就 多个点进队即可。#include#include#include#include#include#include#include#include#include#include#include#define INF 0原创 2014-07-14 17:10:32 · 750 阅读 · 0 评论