搜索BFS、DFS
Wuliwuliii
谁无暴风劲雨时,守得云开见日明!
展开
-
PowerOJ2512: 小红灌溉【染色】
题目链接 划重点!!!每个有菜的点只能浇一次且恰好一次,所以意思就是,譬如某个菜的位置是(x, y),那么,行x、列y的浇水方案只能使用其中的一个。 以此类推,我们给每个有蔬菜的位置的(x, y)的x点与y点链接一条无向边,代表x和y只能选择其中的一个,那么这个问题不就转化成了0、1染色问题了嘛?然后选择权值最少的0、1块就可以了。#include <iostream>#include <cstdio>#include <cmath>#includ..原创 2020-10-19 21:50:16 · 269 阅读 · 0 评论 -
璀璨光滑【牛客】【题意解析+BFS+贪心】
题目链接中文题意,表面平静,实则暗藏玄机,而打开本题的突破口,也确确实实就在于题目的描述: 也就是说,这张图的边的数目是确定的,并且这是一张连通图,而且图上的个点每个点连接出去的边的数目都是条,因为每个数都刚好只与个数在二进制位上差1。 那么,这张图的形态是固定的,好了,现在开始想解决问题的方法。 于是乎,我们可以贪心的,为了让字典序是最小的,所以1号点一定选的是点权0。那么接下去与1号点相连的点肯定是,那么我们不妨先假设给他们赋值,就先随便的给他们找一组可行解,于...原创 2020-07-16 15:42:01 · 213 阅读 · 0 评论 -
迷宫【科大讯飞杯K题】【BFS+单调队列/单调栈】
链接:https://ac.nowcoder.com/acm/contest/5278/K来源:牛客网题目描述SuperSodaSea 在玩一个走迷宫的游戏。迷宫是一个大小为 n×m的矩阵,从上到下依次给行编号为 0,1,…n−1,从左到右依次给列编号为 0,1,…,m−1。游戏规则很简单:从起点出发,每步操作可以移动到上、下、左、右四个方向的空地上,直到终点。为了增加游戏的难度...原创 2020-04-18 22:55:11 · 305 阅读 · 0 评论 -
[SDOI2012]拯救小云公主【bfs+二分答案】
题目链接 正难则反。 要直接求从起点到终点的最大距离,不妨反过来求最小的可以阻止骑士从起点到终点的对于全体圆的最小半径。 那么,就是阻止从左上角到右下角的所有相交圆,于是,就是要变成没有从左上角到右下角的相交圆才可以,那么不妨跑一个bfs来判断,我们二分答案半径,然后看,是否左边界和上边界的相交圆可以抵达下边界和右边界。#include <iostream>#...原创 2020-04-08 10:55:38 · 221 阅读 · 0 评论 -
奶酪【BFS】
题目链接 点从z=0为起点,想跑到z=h,只能在球内,或者是球表层上跑,问能否从起点跑到终点? 直接暴力bfs判断即可。#include <iostream>#include <cstdio>#include <cmath>#include <string>#include <cstring>#include ...原创 2020-04-08 09:42:12 · 224 阅读 · 0 评论 -
Instrusive 【HDU - 5040】【2014 北京 BFS】
题目链接 一道有着很多需要细节的地方需要注意的题,挺不错的。 这题的数据也是给的很好,然后讲一下题意吧。 题意:有一个N*N的网格,有起点M和终点T,我们从起点需要走到终点,每一步需要花费的时间是单位一。但是呢,我们不能被摄影机拍摄到,摄影机是在一秒内由某个方向旋转到另一个方向的,而人也是走到下一个点不是瞬时移动的,而是经过一秒的时间(延续性动作)走到下一个地点(只能朝东南西北—...原创 2020-01-22 23:04:50 · 179 阅读 · 0 评论 -
Infinite Fraction Path【HDU-6223】【BFS+剪枝】
题目链接 训练赛的时候,想到的做法是倍增维护,因为每个点的后继是唯一的。然后又因为不会桶排,所以的复杂度是一定会TLE的,难受(听说桶排还是会被卡(大雾 然后下来补题的时候听了队友的意见(其实比赛的时候就应该多听听,也许就能想到这个bfs了呢?),然后就想了下,似乎可以剪枝BFS来做这个问题,然后想了想,没错了但是关键在哪里剪枝呢?首先我们把所有值最大的放进去,然后每次只跑最大的,我们...原创 2019-11-10 14:11:23 · 147 阅读 · 0 评论 -
Catowice City【Codeforces 1248 F】【BFS】
Codeforces Round #594 (Div. 2) F 一开始是听闻有人说这是一道Tarjan好题,然后就点进来做了,但是想来想去,却想了个另类的法子。 我们可以看到,如果N个人都要选择的话,那么每个人都只能是审判者,或者是参赛者,所以,我们可以假设第一位是两种职业中的一种,然后去搜索一下,复杂度O(N)。并且,题目中要求的是审判者和参赛者都至少为1个人,所以会有非法的情况。...原创 2019-11-08 23:11:51 · 226 阅读 · 0 评论 -
Justified Jungle【dfs + 因子处理】【2017-2018 ACM-ICPC, Central Europe Regional Contest (CERC 17) J】
2017-2018 ACM-ICPC, Central Europe Regional Contest (CERC 17) J 题 这道题在赛场的时候被一群一群队伍给A遍了,着实一堆强队! 首先,我们想一下暴力的做法,我们可以直接搜索,然后求出每个点的size(指的是包含自己的子结点个数)。然后,我们可以发现,这些size值会对其size数的因子们产生贡献,假如每个值乘以它的贡献的答案...原创 2019-11-03 20:38:17 · 231 阅读 · 0 评论 -
Robbers' watch【Codeforces 686 C】【DFS】
Codeforces 686 C 题意还是比较的难懂的,得亏最后给理解了。 题意:我们给一天的时间做了新的定义,一天中,有N小时,每个小时呢,有M分钟,然后呢时针是按照7进制的,也就是7小时(分钟)其实就是10小时(分钟)。 题目让我们求的是各数位都不相同的七进制的种类数。 首先,如果说小时转化成7进制加上分钟转化为7进制的长度会大于7,那么,无论怎样都不会有答案的了。...原创 2019-10-24 21:34:02 · 343 阅读 · 0 评论 -
Paint the Tree【Codeforces Round #592 (Div. 2) D】【枚举+dfs】
Codeforces 1244 D Codeforces Round #592 (Div. 2) 这道题要问的是对于给出一棵树,对于任意链上的三点的颜色是不一样的,三个都要求不同,然后问最小的花费是什么? 我们看到,假如有个点的度是大于等于3的时候,也就是它链接了3个以上的点的话,一定是不可能满足条件的。 那么不就是从一个度为1的点出发,然后呢,我们枚举前两个点的颜色,一共有6种...原创 2019-10-13 20:56:47 · 497 阅读 · 6 评论 -
Carpet【2017-2018 ACM-ICPC, NEERC, Moscow Subregional Contest C】【重链剖分 or 思维拓扑+BFS】
题目链接 gym 101611 2017-2018 ACM-ICPC, NEERC, Moscow Subregional Contest Problem C 先讲讲比赛的时候队友想出来的方法(外加我千辛万苦敲出来,错了3发找了3处bug最后封榜后过的)。 很多人都会想到这样的一个问题:如果是一条长链,或者是一个菊花图呢(一个根结点,下面1e5个点)。这是两种不同的类型。解法一:...原创 2019-10-13 09:35:04 · 323 阅读 · 0 评论 -
Destroying the bus stations【!最小割 && !费用流 && 搜索】
HDU 2485 网上的很多人都是去用网络流,费用流之类的去解决这类问题,但是呢,实际上他们都有各自的BUG,举例说一下吧。对于最小割,我们无法处理的是对于某个点,它实际上是唯一需要删去的点,但是,由它产生的对于最小割的贡献的线路不唯一,也就是这个点会造成一条无向边(题目中原有的是有向边,但是制造回路之后会制造出无向边),于是是的答案偏大了。8 10 51 22 33 44...原创 2019-10-11 09:26:04 · 168 阅读 · 2 评论 -
Pipes【Codeforces 1234 C】【思维】
Codeforces Round #590 (Div. 3) C 此题无坑,自己挖坑! 本来比赛中应该A的代码,就因为我在N==1的时候加了一组特判,然后一直就WA2,后来发现Test 2是强数据,而我一直在怀疑我的思维错了,就一直没交了,最后这道1400分的题,赛后把那行给删了之后就过了……哎 这道题,我们可以把序号1、2的看成是一样的,再把序号3、4、5、6看成是一样的,所以...原创 2019-10-03 15:19:58 · 395 阅读 · 0 评论 -
Kamil and Making a Stream【Codeforces Round #588 (Div. 2) E】【dfs + map】
Codeforces 1230 E 也没怎么读题,就看了下样例的note就知道了是对树上的直系祖先对子结点的链上gcd求和,然后就可以直接这样去跑一遍。 个人比较的喜欢踩坑,有正着走的不走,偏偏选择了从根节点返回回来的答案,这样的做法虽然上是也没有问题,但是呢MLE了,就比较的真实。 正解是直接向下递推即可了,同时子结点继承父节点的答案,以此类推得到最后的答案。#inclu...原创 2019-09-27 16:38:23 · 322 阅读 · 3 评论 -
Acesrc and Hunting 【HDU - 6660】【贪心搜索】
题目连接模拟+贪心的解法(题意也写在上边了呀QAQ) 很容易看到,模拟加上贪心的解法在代码量上有很大的弊端(是真心不好写啊),然后这里就要去想怎么去优化这个问题,我的办法就是我们还是要去贪心,但是怎么贪心呢,是不是我们可以先去选择所有下一个节点的后继节点数最少的就可以完成这样一个目的? 那么,我们到达某个节点之后,就是去遍历其所有的后继节点,看哪个节点的目前所剩后继节点最少,我...原创 2019-08-16 10:01:29 · 457 阅读 · 0 评论 -
八数码【输出路径+BFS+康托展开】
0x27 搜索-A* 题目链接 这道题,并没有用A*然后就给过去了,主要是牛客的测评机的,又快又好用! 直接暴力加上康托展开,然后就给过了,虽然实际上在杭电以及POJ上都会被卡内存或者是空间,所以仍然需要优化才行。#include <iostream>#include <cstdio>#include <cmath>#include &l...原创 2019-08-06 21:20:18 · 492 阅读 · 0 评论 -
八数码问题【康托展开+BFS】
/ Vijos / 题库 / 八数码问题背景Yours和zero在研究A*启发式算法.拿到一道经典的A*问题,但是他们不会做,请你帮他们.描述在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字。棋盘中留有一个空格,空格用0来表示。空格周围的棋子可以移到空格中。要求解的问题是:给出一种初始布局(初始状态)和目标布局(为了使题目简单,设目标状态为123804765),找到一...原创 2019-08-06 15:34:37 · 448 阅读 · 0 评论 -
魔板【HDU-1430】【康托展开+BFS】
题目链接Problem Description在魔方风靡全球之后不久,Rubik先生发明了它的简化版——魔板。魔板由8个同样大小的方块组成,每个方块颜色均不相同,可用数字1-8分别表示。任一时刻魔板的状态可用方块的颜色序列表示:从魔板的左上角开始,按顺时针方向依次写下各方块的颜色代号,所得到的数字序列即可表示此时魔板的状态。例如,序列(1,2,3,4,5,6,7,8)表示魔板状态为:1 ...原创 2019-08-06 14:55:13 · 400 阅读 · 0 评论 -
Olya and Energy Drinks【Codeforces 877D】【BFS+思维+剪枝】
Codeforces Round #442 (Div. 2) D 这天给学弟学妹们出了这道题,没想到背锅了……感觉要0A了…… QAQ,确实,今天我再次写的时候也WA了好几发,哎,这锅背了…… 看到有些的代码code:访问过的点都标记为mp[x][y] = '#',但是这样是不可以的,这样反驳:……(前面进行了很多步,进行到这里了:)##.#....##.# 这只是...原创 2019-07-20 16:32:17 · 298 阅读 · 2 评论 -
Lotto HDU - 1342【DFS】【讲解PE原因】
这是一道水题,但是PE却折磨了我近两个小时的时间让我反复读题终于明白了。In a Lotto I have ever played, one has to select 6 numbers from the set {1,2,...,49}. A popular strategy to play Lotto - although it doesn't increase your chance of...原创 2018-07-05 20:04:14 · 230 阅读 · 0 评论 -
FatMouse and Cheese【暑期集训D题】【DFS+记忆化搜索】
之所以先写这道题其实是有理由的,因为这道题要讲课,所以提前在博客上写些(说实话这道题是今早才A的,但是前面有好几道题还没来得及写下来......)题面:FatMouse has stored some cheese in a city. The city can be considered as a square grid of dimension n: each grid loca...原创 2018-07-07 16:49:47 · 213 阅读 · 0 评论 -
Snacks 【HDU - 5692】【线段树+DFS】
这道题的思路比较强大了,首先这道题对于所有的N个节点有(N-1)条线段,说明这是一个无环图,其次,图的连线从来不会变化,那么我们只要记录一次每个节点目前的最大价值,以及关联点,然后逐一查找也就能找到关联的点了,于是,我想到了线段树+DFS的算法,我们可以从树的角度来看,我们把树根也就是初始的节点('0'->'1',节点序号全部+1;改成1~N)当作一切节点的始发点,然后假如要更新到某个节...原创 2018-08-21 11:19:00 · 278 阅读 · 0 评论 -
Tempter of the Bone【DFS+奇偶剪枝】scanf会WA!!!
题目链接HDU1010多好的一道题,交scanf会WA,cin一发过,我WA了30+次,惊是这样的BUG,我就说我推的公式怎会错呢!!!(如果有字体缩小的方式,我要把上面那行缩小些,先看大家WA)可真是一道有趣的题目,首先,有这样的图推出奇偶剪枝:0 1 0 11 0 1 00 1 0 11 0 1 0可以看到相互能达到的两点间的关系,若图上值相等的两点时间也应该是...原创 2018-10-01 16:26:38 · 215 阅读 · 1 评论 -
Recovering BST 【CodeForces - 1025D】【DP区间+记忆化搜索】【极其详细的解题报告】
CodeForces上的题目链接VJ上的题目链接 很好的一道题,最早的时候用变形的二分匹配写了下,然后就WA在了第37发,然后就想着哪里错了,后来理解了题意,发现这是道二分搜索树,必须满足对于每个根节点,它的左儿子必须小于它,而它的右儿子必须大于它。之前的二分匹配做法,只能两两边匹配上,使得所有链接的点满足gcd>1,却不能做到二分搜索树的结构。但是,二分匹配的做法就类似于dfs变...原创 2018-09-15 15:00:05 · 303 阅读 · 0 评论 -
Y 【HDU - 4705】【树形DP】
题目链接 题目不给直接翻译,只能自己读题,讲的是给你一大堆树上的点,问你有多少个点三个点无法用一条路径表示——就是没法一笔画的三个点,一笔画问题,我们求没法一笔画的点挺难,不如就求有多少能一笔画的点,然后就用C(N, 3)减去其即可。 怎么求没法一笔画的点?我们可以做一个假设,知道有一个点X,我们DFS得到它在一条支路上有多少子节点,那么我们用B作为中转点,其中该支路上的子儿子中任...原创 2018-10-03 15:11:16 · 176 阅读 · 0 评论 -
Minimal Ratio Tree 【HDU - 2489】【最优比例生成树+搜索】
题目链接 刚看到这道题的时候,我相信很多读者会把它与二分答案的最优比例生成树联系在一起,当然,我也是这么想的,然而,后来怎么推也都没法合理的将它的优先队列的方程推导出来,所以想必是错了的。 这道题还的确是用最优比例生成树,因为它的N、M偏小,最多也就是15,那么搜索就可行了,我们可以用dfs()去搜,每次将搜索的节点放进一个预存的数组中,然后当恰好搜到M个节点的时候,我们就对这M个节点...原创 2018-11-03 16:56:17 · 244 阅读 · 0 评论 -
How far away ? 【HDU - 2586】【DFS+链式前向星优化】
题目链接 其实这道题可以不用链式前向星优化换做vector<>也是可以跑的,只是会许会慢些而已。来换个中文题意好读些:勇气小镇是一个有着n个房屋的小镇,为什么把它叫做勇气小镇呢,这个故事就要从勇气小镇成立的那天说起了,修建小镇的时候,为了让小镇有特色,镇长特地只修了n-1条路,并且规定说,所有在勇气小镇的村民,每一次出门必须规划好路线, 路线必须满足在到达终点之前绝对...原创 2018-11-10 19:18:09 · 229 阅读 · 0 评论 -
Unidirectional TSP 【HDU - 1619】【DFS+记忆化搜索】
题目链接 就是告诉你有三种走法,斜向上、向前、斜向下,问你从最左边的任一点出发抵达最右边,问所需要的最少权值是多少。 我身边的人都告诉我说用DP来写,但是我一眼就觉得它是道DFS+记忆化搜索的题(不记忆化肯定会T,亲自实验过),然后我就直接敲了DFS,就过了,看代码吧,DFS可以说的不多。#include <iostream>#include <cstdio&...原创 2018-11-12 19:50:57 · 197 阅读 · 0 评论 -
Maximum Diameter Graph 【CodeForces - 1082D】【搜索+构造】
题目链接 一开始忘记输出有多少条边,WA了好几发都跑不过第一组测试样例,开始怀疑自己是不是读了道假题,然后在大佬们的帮助下,终于AC,好伤心……读假样例(一定是我太弱了)。 我的思想是采用了树链剖分的dfs()构造思想,可能是因为最近少用了树链剖分有些想念吧,我用dfs()去建边,在此之前先按照节点的度按照降序排列,并且如果最后存在个度为1的节点的话,我们先把它放到第一个上面去就行了。...原创 2018-12-12 14:35:50 · 194 阅读 · 0 评论 -
Father Christmas flymouse【Tarjan缩点+DFS】
After retirement as contestant from WHU ACM Team, flymouse volunteered to do the odds and ends such as cleaning out the computer lab for training as extension of his contribution to the team. When Chr...原创 2019-02-10 21:19:54 · 349 阅读 · 0 评论 -
汽车加油行驶问题【网络流24题】【可以使用BFS】
题目链接 这道题虽然说是网络流24题中的一题,但是我的第一想法确实去用BFS()跑一个最小的花费,但是由于加油的钱、向后走的钱、开设一个新的加油站的钱是不固定的,所以,我们需要进行相应的判断,跑所有可以达到终点的值去比较大小。#include <iostream>#include <cstdio>#include <cmath>#include...原创 2019-03-30 15:13:28 · 508 阅读 · 0 评论 -
【2019年ICPC南昌网络赛】Distance on the tree【DFS+线段树合并(可持久化线段树)】
题目链接DSM(Data Structure Master) once learned about tree when he was preparing for NOIP(National Olympiad in Informatics in Provinces) in Senior High School. So when in Data Structure Class in College...原创 2019-04-25 14:55:29 · 417 阅读 · 0 评论 -
Codeforces Round #565 (Div. 3)
A. Divide it! 直接暴力求解,看看能不能用上面的这几种方法使得给出的数变成1?#include <iostream>#include <cstdio>#include <cmath>#include <string>#include <cstring>#include <algorithm>...原创 2019-06-10 18:22:21 · 296 阅读 · 0 评论 -
Subimage Recognition 【POJ - 3600】【图形的简单匹配】
题目链接 可以删除行或者列,问最后小方块能否被大方块表示? 由于图形很小,所以我想的是直接去dfs()去暴力。对应匹配即可。#include <iostream>#include <cstdio>#include <cmath>#include <string>#include <cstring>#incl...原创 2019-07-08 10:56:28 · 179 阅读 · 0 评论 -
Educational Codeforces Round 67 (Rated for Div. 2)
contest链接A. Stickers and Toystime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputYour favorite shop sells原创 2019-07-05 09:36:49 · 408 阅读 · 0 评论 -
Add on a Tree: Revolution【Codeforces1189 D2】
Codeforces Round #572 (Div. 2) D2D2. Add on a Tree: Revolutiontime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputNote that this is ...原创 2019-07-07 11:33:43 · 693 阅读 · 1 评论 -
Sum It Up HDU - 1258【DFS】
Given a specified total t and a list of n integers, find all distinct sums using numbers from the list that add up to t. For example, if t=4, n=6, and the list is [4,3,2,2,1,1], then there are four di...原创 2018-07-05 18:59:29 · 152 阅读 · 0 评论