搜索
文章平均质量分 80
AlmostFree
这个作者很懒,什么都没留下…
展开
-
uva 340 Master-Mind Hints(最简单标记搜索)
题意是猜密码。 给你一段密码,原创 2014-07-01 09:44:49 · 599 阅读 · 0 评论 -
hdu 2531 整块bfs
题意: 给一个不超过20的整块,移动走迷宫。 http://acm.hdu.edu.cn/showproblem.php?pid=2531 解析: 把整个块当做一个点,然后移动判断。 详见代码。 代码: #include #include #include #include #include #include #include #include #in原创 2015-05-02 12:27:00 · 561 阅读 · 0 评论 -
hdu 1026 bfs(数组模拟,路径输出)
题意: 给一张图,求从左上角到右下角的最短路径。 图上的数字代表一个怪物,杀掉怪物用的时间。 解析: 路径输出改了一晚,开始用指针去指,然后就全指乱了。 然后改成了数组模拟。 代码: #include #include #include #include #include #include #include #include #include #in原创 2015-04-27 22:01:07 · 429 阅读 · 0 评论 -
hdu 1253 3D bfs
题意: 3D迷宫bfs。 解析: 和之前的那个3D迷宫差不多。 代码: #include #include #include #include #include #include #include #include #include #include #define LL long long #define lson lo, mi, rt << 1原创 2015-04-28 09:50:32 · 321 阅读 · 0 评论 -
hdu 1035 dfs判环
题意: 给一张带有指向性的图: SESWE EESNW NWEEN EWSEN 分别代表上下左右,指定起点0, k - 1,问按指示能否走出这张图,或者走入一个环。 解析: 按图一个一个往下走就行了,若当前步被访问过,则存在环。 代码: #include #include #include #include #include #include #in原创 2015-05-03 20:54:21 · 479 阅读 · 0 评论 -
hdu 1242 优先队列的bfs
题意: 给一张图,图上a为一个人,x为守卫,杀死守卫要1的单位时间,r为救a的人,注意r可能有很多个。 现在问很多个r来救a,最快多长时间能救出a。 解析: 反过来考虑,由a去找r,找到最近的出来就行了。 为了找到最短的,用优先队列来控制每次最小的点,因为x有的时候会干扰到step的计数,导致不是最短。 代码: #include #include #include原创 2015-04-28 20:42:43 · 359 阅读 · 0 评论 -
hdu 1548 一维bfs大水题
题意: 电梯,可以往上走或往下走,求从A到B楼的最短时间。 解析: 一维bfs,水。 代码: #include #include #include #include #include #include #include #include #include #include #define LL long long #define lson lo, mi原创 2015-05-01 15:51:07 · 562 阅读 · 0 评论 -
八数码问题 poj 1077 康拓展开
题意: 八数码问题。 解析: 直接康拓展开state,化成一个类似hash的key。 代码: #include #include #include #include #include #include #include #include #include #include #include #include #define LL long lo原创 2015-06-03 15:43:15 · 508 阅读 · 0 评论 -
poj 2449 第k短路 A* + spfa
poj 2449: 题意: 给一张图,求第k短路。 解析: A* + spfa。 一下转自:http://blog.csdn.net/mbxc816/article/details/7197228 “描述一下怎样用启发式搜索来解决K短路。 首先我们知道A*的基础公式:f(x)=g(x)+h(x);对h(x)进行设计,根据定义h(x)为当前的x点到目标点t所需要的实际距原创 2015-06-07 13:40:48 · 689 阅读 · 0 评论 -
poj 3255 次短路(第k短路) A* + spfa 或 dijkstra
题意: 给一张无向图,求从1到n的次短路。 解析: A* + spfa 或者 dijkstra。 详解见上一题:http://blog.csdn.net/u013508213/article/details/46400189 本题,spfa中,stack超时,queue的效率最高,priority_queue次之。 代码: #include #include #i原创 2015-06-07 21:25:38 · 980 阅读 · 1 评论 -
hdu 2181 哈密顿绕行世界问题
题意: 一个规则的实心十二面体,它的 20个顶点标出世界著名的20个城市,你从一个城市出发经过每个城市刚好一次后回到出发的城市。 解析: dfs就好了。 代码: #include #include #include #include #include #include #include #include #include #include #include #inc原创 2015-05-25 18:50:41 · 335 阅读 · 0 评论 -
hdu 2102 A计划 伪3D迷宫
题意: 给一个2 * n * m的迷宫,给起点,找终点。 问能否在规定时间内找到。 解析: bfs,z维直接用 ^1 来处理。 代码: #include #include #include #include #include #include #include #include #include #include #include #include原创 2015-05-26 12:25:25 · 373 阅读 · 0 评论 -
poj 3669 bfs
题意: 流星雨,给每次在x,y,t时间点落下来的流星。 求从0,0点开始,最快跑到哪个地方可以安全避难。 解析: bfs,开始图建的有点问题。 然后是300那个限制要去掉。 不该仔细的地方。。。太仔细了。。。。 代码: #include #include #include #include #include #include #include #i原创 2015-06-11 20:41:41 · 332 阅读 · 0 评论 -
poj 3050 dfs + set的妙用
题意: 给一个5x5的矩阵,求由多少个由连续6个元素组成的不一样的字符的个数。 解析: dfs + set去重搞定。 代码: #include #include #include #include #include #include #include #include #include #include #include #include #inc原创 2015-06-12 21:38:04 · 565 阅读 · 0 评论 -
poj 2411 2663 2420 dp+dfs+矩阵快速幂(1*2矩形排版次数)
从这篇博客学到很多: 点击打开链接 直接枚举高的状态,一旦此状态确定了,之后的状态就都确定了。 poj2411: 题意: 给定一个长宽小于等于11的矩形,问用1×2的小矩形填满,有多少种方法。 代码: #include #include #include #include #include #include #include #include #i原创 2015-08-10 20:30:48 · 700 阅读 · 0 评论 -
uva 816 带方向的bfs
题意: 以下摘自小紫: 给一个9*9的迷宫,输入起点、离开起点时的朝向和终点,求一条最短路。(多解任意输出) 进入一个交叉点的方向(用NEWS这4个字母分别表示北东西南,即上右左下)不同,允许出去的方向也不同。 如图: 解析: 首先弄懂在每个点的状态有哪些:位置(x,y)朝向d,以此来建立节点,并且以此来建立bfs的状态step; 然后是方向dir与转弯turn的转换原创 2015-11-12 13:20:43 · 501 阅读 · 0 评论 -
hdu 1175 连连看(bfs)
题意: 不从外面走的连连看。 解析: 抽象为图上一个点到另一个点,只能拐2次弯。 然后用bfs来每询问一次爆一个就行了。 入队条件是下一个点的拐弯次数小于当前的,或者下一个点没有被访问过。 代码: #include #include #include #include #include #include #include #include #inc原创 2015-04-27 15:44:48 · 426 阅读 · 0 评论 -
hdu1728 (直撞bfs)
题意: 一个没有方向感的萌妹纸走迷宫,规定只能转k次方向,给迷宫,问这个妹纸是否能走出迷宫。 解析: 这题有几个坑点,首先是m,n,然后是sx,sy,ex,ey。 做法是横冲直撞,直接一条道走到黑,标记,入队就好了。 代码: #include #include #include #include #include #include #include #in原创 2015-04-26 20:01:55 · 714 阅读 · 0 评论 -
hdu 1072(倒计时bfs)
题意: 你手上有一个炸弹,6分钟后会爆炸,现在给你一张图,你走到出口时炸弹没有爆炸你就安全了。 图上有很多重设时间点,走到重设时间点可以把时间重新设置为6分钟,你可以走上下左右四个方向,每走一步消耗一分钟。 现在要输出最短逃出时间,若逃不出输出-1。 图上0:代表墙, 1:代表可以走的路, 2:代表你的位置, 3:代表出口的位置,4:代表炸弹重设时间点。 解析: 用bfs来原创 2015-04-26 13:59:36 · 406 阅读 · 0 评论 -
poj 2676 sudoku(DFS)
题意是填数独。 思路很简单,原创 2014-04-16 17:46:42 · 490 阅读 · 0 评论 -
poj 3278 Catch That Cow (BFS剪枝)
第一次想到求最短路,用bfs,用的不够灵活,代码很幼稚,活生生的TLE。 TLE代码: #include #include using namespace std; struct point { int x; int step; }; int bfs(int s,int e) { queue Q; point now,next; now.x=s;原创 2014-03-05 16:48:54 · 523 阅读 · 0 评论 -
poj 2488 A Knight's Journey(DFS)
本题分为两部分: 1.DFS。 深搜能搜到最底部,深搜的出口是深度等于棋盘个数。 2.字典序输出。 首先对棋盘编号如下: 所以图中八个点的字典序就为: B3... B5... C2... C6... E2... E6... F3... F5... 转变成变换坐标,为 (x,y)原创 2014-03-05 22:02:52 · 491 阅读 · 0 评论 -
poj 3009 Curling 2.0(DFS)
大概题意就是弹弹球。 第一眼看到“The purpose of the game is to lead the stone from the start to the goal with the minimum number of moves."的时候,惯性思维想到用广搜。之后发现数据规模比较小,可以直接深搜遍历。有空再翻回来写个广搜吧~ DFS代码: #include int map原创 2014-03-06 22:28:53 · 492 阅读 · 0 评论 -
poj 1321 棋盘问题(DFS)
深搜可以搜索出所有答案,题目没说清楚,只有在“#”上才能放旗子。 直接看代码: #include #include bool chess[9][9]; bool vis_col[9]; int n,k,ans; void dfs(int row,int num) //当前搜索到row,num为已经放下的棋子 { if(num==k) { ans++;原创 2014-03-07 21:12:30 · 546 阅读 · 0 评论 -
poj 1426 Find The Multiple(DFS或打表)
大概题意就是找出一个1~200间的一个数字n,找出一个只由1,0组成的数m,使m被n整除。 第一种 思路是dfs,搜到一种满足题意的答案就ok了。 用的时间比较多。 用unsigned long long 解决了大数问题。 代码: #include int n; bool flag; void dfs(unsigned long long a,int dep) { if(原创 2014-03-08 19:43:30 · 774 阅读 · 0 评论 -
poj 2251 Dungeon Master(BFS)
题意就是 3D迷宫,在noj上做过~,在平面 xoy 上加上z轴就变成3D啦~ 找最短的出路所以BFS。 代码: #include #include #include using namespace std; char maze[31][31][31]; int L,R,C; int xe,ye,ze; int dir[][3]= {{-1,0,0},{1,0,0},{0,0,1}原创 2014-03-09 21:05:09 · 516 阅读 · 0 评论 -
poj 3126 Prime Path(BFS)
Debug了一个早上,感觉自己BFS写得没错。。。最后发现原来是打表的时候漏了一个大括号。T T。不过练习了一下Codeblock工程中的Debug模式~,成功发现了问题。 题意是让转化俩素数 j->k,一次只能换一个数位的数,并且转换过程中新的那个数还要是素数,求最少的次数。 素数直接打表。 附上学校某学长新生赛题解给的两种素数打表代码: 1、 prime[i] 非0原创 2014-03-09 11:11:26 · 476 阅读 · 0 评论 -
hdu 1016 Prime Ring Problem(DFS)
题意是给一个数字n,寻找由小于n的n个正整数排列出前一个与后一个数的合是素数的环。 用深搜,打表,很快就解决了。 代码: #include #include int n,ans[20]; bool vis[31]; bool prime[31]={0,1,1,1,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0}; /*v原创 2014-03-09 21:40:06 · 497 阅读 · 0 评论 -
hdu 1010 Tempter of the Bone(dfs + 奇偶剪枝)
题意是给你大门开启的时间和地点,给你起点,让你写程序原创 2014-06-12 19:26:46 · 376 阅读 · 0 评论 -
poj 1979 Red and Black (DFS)
题意是给你一张图,‘@’是起点,‘.’能走,原创 2014-04-15 21:57:01 · 441 阅读 · 0 评论 -
poj 1606 Jugs and poj 3414 Pots(数组模拟BFS) uva 571 (数论)
据说是水题,参考别人代码写了一个晚上。 题意是给两个水杯a 因为用队列的stl要记录层比较难,所以用数组模拟。 代码: #include #include const int MAX=105; int a,b,n,str[MAX*MAX],r,l; bool vis[MAX][MAX]; char act[][10]= {" ","fill A","fill B","empt原创 2014-03-10 22:26:32 · 758 阅读 · 0 评论 -
uva 10308 (二叉树深搜)
题意: 给点与点间的距离,且点与点间只有一条边,求最长的两点间距离。 代码: #include #include #include #include #include #include #include #include #include #include #include #include #define LL long long using namesp原创 2015-01-05 23:42:59 · 404 阅读 · 0 评论 -
[bin神带我飞系列]专题一 搜索入门
搜索入门练练练! http://acm.hust.edu.cn/vjudge/contest/view.action?cid=65959#overview 感谢bin神带我第一次飞飞飞。 A: 题意: 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子原创 2015-04-19 22:10:27 · 853 阅读 · 0 评论 -
noj:广搜 (bfs) and 深搜(dfs) 整理
第一次写dfs与bfs 在学长的帮助下过了两题自己学校oj的题 第一题 dfs noj 1010 http://noj.io/problem/p/1010&cid=1116 代码: #include const int M=81; int maze[M][M],n; int dir[][2]={{0,1},{1,0},{0,-1},{-1,0}}; bool原创 2014-02-23 15:51:26 · 985 阅读 · 0 评论 -
uva 1103 dfs染色+dfs判断围块
题意: 给一张16进制的图,然后给6种象形文字,你来判断图中存在几个象形文字,将结果按照字典序输出。 Ankh:A Wedjat:J Djed:D Scarab:S Was:W Akhet:K 解析: 小紫上已经提示到了,用象形文字的“空洞”数来判断是哪个象形文字,所以,现在的关键在于,如何判断一个1围成的图形的内部,有多少个连通块。 首先先把1原创 2015-11-11 23:45:08 · 543 阅读 · 0 评论