
Algorithm_搜索
文章平均质量分 82
niuox
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Hoj 3130 Qie-Gao
题目:http://acm.hit.edu.cn/hoj/problem/view?id=3130 本题练习深度优先搜索。 将所有的#标记为未标记,从上到下从左到右依次从每个没标记过的点开始广搜,搜到的点记为已标记,同时记录最小的xl,yl以及最大的xr,yr和搜到的点数。如果搜到的点数不等于根据xl、yl、xr、yr计算出的矩形的面积,则说明有矩形相邻,否则就找到了一个矩形。依次计算即可原创 2012-12-31 15:38:44 · 598 阅读 · 0 评论 -
Swust 485 自守数 / Poj 2205 Self-Replicating Numbers
题目连接: 第一题:http://acm.swust.edu.cn/oj/problem/485/ 第二题:http://poj.org/problem?id=2205 两题都是自守数问题。 第一题是简单的十进制的自守数判断: 以376为例 376 被乘数 X 376 乘数 ---------- 2256 第一个部分积=被乘数*乘数的倒数第一位 2632 第二个部分积=被乘数*原创 2013-03-29 11:13:40 · 1172 阅读 · 0 评论 -
Hoj 1140 The Game
题目连接:http://acm.hit.edu.cn/hoj/problem/view?id=1140 题意:求从起点到终点的最少的转弯数.即折线数目。 可以用BFS来做,对于不同的是,dist的求法,加一层while循环判断是否在同一方向上前进,在此方向上的点的dist都是相同的。 #include #include #include #include #include #inc原创 2013-03-17 17:10:35 · 1040 阅读 · 0 评论 -
Vijos 1468 渡河
题目连接:https://vijos.org/p/1468 本题是一道非常好的搜索题。DFS+BFS; 给一张地图:0代表陆地,1代表河流,从陆地到河流需要做竹筏,问做少做几次竹筏能从这块区域出去。 第一次看到这道题,我用了最简单的BFS+并查集。并查集用来处理多次查询的情况,如果相某个点已经被计算过,那么,和他联通的点就不用计算了,直接输出结果。但是对于每一次查询,却要用BFS,BFS是复原创 2013-03-18 18:39:31 · 1183 阅读 · 0 评论 -
POI 1999 Water
积水问题。 题目:http://main.edu.pl/en/archive/oi/6/wod 题意:一个凹凸不平的池塘,每一个块儿高度不同,因而下雨后由于相邻的高度落差会有积水。问:这个池塘最多积水多少。 我们可以用一个最小堆来维护当前堆里高度的最小值。 边界的块儿不可能积水,全部边界点入队列。然后Pop一个点开始Floodfill,寻找比他高度小的,这样的块儿会有积水。积水的多少位高度原创 2013-03-19 22:39:18 · 1244 阅读 · 0 评论 -
Vijos 1082 丛林探险
题目链接:https://vijos.org/p/1082 本题本来是练习SPFA的。我一看DIscuss能用裸搜。果断敲了一个前向星+DFS,居然超时了。后来发现是Next数组开小了,应该开成两倍边数的大小。 后来我又把前向星改成邻接表,也AC了。。最后写一发SPFA。 前向星+DFS+剪枝:(AC): #include #include #include #inclu原创 2013-04-05 11:00:09 · 1142 阅读 · 0 评论 -
Hdu 4527 小明系列故事——玩转十滴水
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=4527 腾讯马拉松初赛第六场第三题。 搜索题。 需要特别注意的一点是两个飞溅的小水滴聚集在等级为4的方格上的情况,这种情况实际应该是先变成6,然后爆裂飞溅,其本身变成等级0,即本身应该是同步的。 但是如果用一般思维的BFS,因为出队列毕竟有先后,无法达到实际的同步,因为一般的思维,我们总是使一个原创 2013-03-26 17:49:49 · 937 阅读 · 0 评论 -
Hoj 1868 八数码问题
题目链接:http://acm.hit.edu.cn/hoj/problem/view?id=1868 超时的写法:容易想到的是一遍搜索,把所有的状态都保留下来,我们只要建立0-8的全排列和0-362879的对应起来,就可以了。其中fact数组保留了以当前标号开始的全排列的个数。但是很遗憾,这样是会TLE的。 #include #include #include #inclu原创 2013-05-24 11:41:38 · 1133 阅读 · 0 评论 -
Hdu 3887 Counting Offspring \ Poj 3321 Apple Tree \BZOJ 1103 [POI2007]大都市meg
这几个题练习DFS序。 问题引入: 给定一颗n(n 1、C x y 以节点x的权值修改为y。 2、Q x 求出以节点x为根的子树权值和。 最直观的做法, 枚举一个子树内所有节点的权值加和。但这种做法的每一次讯问的时间复杂度是O(n)的,很明显无法满足题目的需要,我们需要更优的解法。 第一题:http://acm.hdu.edu.cn/showpro原创 2013-08-03 18:57:16 · 1569 阅读 · 0 评论 -
Hoj 3133 White-box testing
题目链接:http://acm.hit.edu.cn/hoj/problem/view?id=3133 简单的搜索题。 输出白盒测试的基本路径。注意题目中关于基本路径的定义。。。 考虑到有可能(不知有没有可能)标号和数量不符的情况,离散化一下。 #include #include #include #include #include #include #include #in原创 2013-08-27 19:31:44 · 2531 阅读 · 0 评论 -
Hoj 1020 Afshung Pizza Delivery
题目:http://acm.hit.edu.cn/hoj/problem/view?id=1020 这题写出来有一种畅快感。毕竟有一个Bug Debug了好久。 if((i == 0 || i == 2) && map[tempx][tempy] == '|') continue; 我写成了: if(i == 0 || i == 2 && map[tempx][tempy] == '|')原创 2013-03-09 10:45:14 · 1134 阅读 · 0 评论 -
Hoj 1030 Labyrinth
本题是经典的两次BFS题目。 题目链接:http://acm.hit.edu.cn/hoj/problem/view?id=1030 要求在图中找出距离最远的两个点的距离。 这题暴力枚举每一点出发的最长路径显然不可行。 从任意点A出发的最长路径的另一个端点称为B,那么B就是全局最长路径的一个端点。那么,从B点开始一次广搜,到达的最远点叫C。BC即是图中的最长路径。 证明参考:ht原创 2013-01-28 11:19:49 · 758 阅读 · 0 评论 -
Hoj 1440 Knight Moves
本题练习BFS。 题目链接:http://acm.hit.edu.cn/hoj/problem/view?id=1440 找到终点后,终结此广搜即可。 明确国际象棋的“马”的走动规则即可: #include #include #include #include #include using namespace std; struct Point { int x;原创 2013-01-24 19:02:39 · 750 阅读 · 0 评论 -
八皇后问题DFS解法
以前写过八皇后问题的全排列解法。 现在补一下八皇后问题的深搜解法: 时间复杂度O(8!): #include #include #include #include using namespace std; int mat[8][8]; int ans = 0; bool check(int row,int col) { for(int i=0;i<row;i++)原创 2013-01-24 14:11:14 · 4696 阅读 · 0 评论 -
Hoj 2581 Go
本题练习广搜。 题目链接:http://acm.hit.edu.cn/hoj/problem/view?id=2581 其实判断某一个连通区域是属于黑色领域还是白色领域很简单。我们只需要找到一个空白点,对这个空白点对应的空白区域进行广搜。如果广搜过程中,会遇到黑色或者白色棋子的阻隔。如果只有黑色棋子阻隔,那么这段空白区域是黑色领域,如果只有白色棋子阻隔,那么这段区域是白色领域。 #inc原创 2013-01-25 14:28:45 · 694 阅读 · 0 评论 -
Hoj 2979 Escape from Pyramids
本题练习广搜: 题目链接:http://acm.hit.edu.cn/hoj/problem/view?id=2979 本题十分简单,典型的FloodFIll。输出格式细节地方需要注意即可。 #include #include #include #include #include using namespace std; int map[202][202]; int dis[2原创 2013-01-25 16:17:45 · 653 阅读 · 0 评论 -
Hoj 3139 Bombers
本题重要的是题意的理解:一个炸弹引发同一条线(在同一条水平线或竖直线)上的其他炸弹爆炸,此炸弹又会引发连环效应。所以使用N次广搜即可。 题目链接:http://acm.hit.edu.cn/hoj/problem/view?id=3139 #include #include #include #include #include #include #include using n原创 2013-01-28 14:01:44 · 611 阅读 · 0 评论 -
Hoj 1049 Sticks
本题是经典DFS+剪枝题。 题目链接:http://acm.hit.edu.cn/hoj/problem/view?id=1049 但是裸DFS我都写了一段时间,必然是TLE的,但是是一种很好的搜索思路,贴裸DFS代码: #include #include #include #include #include #include using namespace std; i原创 2013-01-26 22:57:14 · 551 阅读 · 0 评论 -
Hoj 2064 Journey to Tibet
今天HIT冬训第一次阶段赛。这一道题我一直A不掉。明明很简单,思路也对。就是WA后来发现时是 max = i;/出了错。/如果写做:max = i+1,然后在最后输出输出max是错误的。因为可能max = 0。伤不起。。。就这样断送了我的AC之路。 注意:关键在于读懂题意,是两村庄之间的距离不大于30才可以到达。 题目链接:http://acm.hit.edu.cn/hoj/problem/v原创 2013-01-27 22:22:02 · 816 阅读 · 0 评论 -
Poj 2358 Lake Counting
水题。BFS。 题目连接:http://poj.org/problem?id=2386 #include #include #include #include #include using namespace std; int n,m; int map[102][102]; int visited[102][102]; int disx[8] = {0,1,1,原创 2013-02-10 22:24:23 · 792 阅读 · 0 评论 -
Hoj 1448 Dungeon Master
题目:http://acm.hit.edu.cn/hoj/problem/view?id=1448 本题是三维BFS的典型应用,与二维搜索类似,只需要在Z轴方向增加两个方向即可。 #include #include #include #include #include #include #include #include using namespace std; struct原创 2013-03-05 17:17:13 · 971 阅读 · 0 评论 -
Uva 10047 The Monocycle
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=988 搜索题目。 只不过把(x,y,d,c)作为一个结点。每个节点出发最多有三条边,分别对应前进、左转、右转。 #include #include #include #include原创 2013-09-01 12:25:59 · 2505 阅读 · 0 评论