随笔分类 - 图论—BFS
摘要:http://codeforces.com/gym/101617/attachments 题意:给出一个图,每个顶点代表一个金矿,每个金矿有g和d两个值,g代表金矿初始的金子量,d是该金矿每天的金子量会减少d。顶点与顶点之间存在边,意思是从一个金矿到另一个金矿需要花费的天数。现在有个人一开始在1金矿
阅读全文
摘要:https://vjudge.net/problem/UVA-11624 题意:有一个大火蔓延的迷宫,迷宫中有障碍格,而所有着火的格子都会往四周蔓延。求出到达边界格子时的最短时间。 思路:复杂了一点的迷宫。 在bfs之前,我们首先需要计算出火势蔓延的情况,火势每次向四周蔓延一个格子,所以这也是一个最
阅读全文
摘要:http://poj.org/problem?id=2965 题意: 一个4*4的矩形,有'+'和'-'两种符号,每次可以转换一个坐标的符号,同时该列和该行上的其他符号也要随之改变。最少需要几次才能全部变成'-'。 思路: 这道题和黑白棋那道题目差不多,唯一的差别就是需要记录一下路径。 我是用BFS
阅读全文
摘要:http://poj.org/problem?id=1753 题意:一个4*4的棋盘,只有黑和白两种棋子,每次翻转一个棋子,并且其四周的棋子也跟着翻转,求棋盘全为黑或全为白时所需的最少翻转次数。 思路:暴力枚举。 一共16个棋子,所以可以用二进制来存储。后来看了一下别人的代码,发现居然可以用异或运算
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1043 题意:给出一个八数码,求出到达指定状态的路径。 思路:路径寻找问题。在这道题里用到的知识点挺多的。第一次用双向BFS来做。 ①双向BFS 在单向BFS的基础上,多建一个从终止状态开始搜索的队列,当然这个时候
阅读全文
摘要:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4476 题意:给出w*h的网格,相当于迷宫,有大写字母和小写字母,算出小写字母走到大写字母状态时的最少步数
阅读全文
摘要:https://vjudge.net/problem/UVA-10603 题意:三个杯子,倒水问题。找出最少倒水量。 思路:路径寻找问题。不难,暴力枚举。
阅读全文
摘要:寒假的第一道题目,在放假回家颓废了两天后,今天终于开始刷题了。希望以后每天也能多刷几道题。 题意:这道BFS题还是有点复杂的,给一个最多9*9的迷宫,但是每个点都有不同的方向,每次进入该点的方向不同,允许出去的方向也不同。所以在记录迷宫的时候比较麻烦,可以用一个四元组has_edge[10][10]
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1026 题意:给出一个迷宫,求出到终点的最短时间路径。 这道题目在迷宫上有怪物,不同HP的怪物会损耗不同的时间,这个时候可以用优先队列,每次让时间最短的出队列。由于最后还需要输出路径,所以需要设置一个数组来保存路径
阅读全文
摘要:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=380 做了这道题之后对BFS总算是有了点认识了。
阅读全文