
bfs
TelmaZzzz
HEU ACMer
展开
-
codefoces 558C Amr and Chemistry (bfs)
题解:题意为给定n个数,允许有2种操作,一种是乘2 一种是除2(向下取整) 问最小需要几次操作使得n个数相等首先发现一个显然的性质 答案不可能超过2e52e52e5,然后我们发现对于这类题目多会用bfsbfsbfs来解决,由于值的范围确定,我们就可以想到再记录num[i]num[i]num[i]表示nnn个数中能到达数字iii的个数,ans[i]ans[i]ans[i]则表示到达数字i的最小...原创 2019-04-12 00:42:02 · 198 阅读 · 0 评论 -
codeforces59E Shortest Path (bfs)
题解:大致题意为给定3e3的无向图,已经给定1e5组非法行走路线(ai,bi,ci),问最少走几条路从1走到n,并输出路线由于点只有3e3,所以可以记录前驱是pre,当前是x为小节点,是否跑过,来跑一遍bfs 这样就不会出现队列元素过多的情况出现。代码:#include <map>#include <set>#include <ctime>#inc...原创 2019-04-30 01:04:54 · 324 阅读 · 0 评论 -
codeforces 507E Breaking Good
题解:题意大致为给定1e5的无向图,在m条边中有点边是好的有的是坏的,若要用坏的就要修,多余的好的要炸。问从1到n的最短路中修和炸的次数最少是几次首先大致框架就是一个bfs,之后我们可以利用类似求最短路松弛的原理,对每个点求最短路到此点需要修路的最小值(因为我们发现路只有两种情况,因此只要保证修的路越少,则用之前能用的路就会越多,炸的也就越少,这样总和才最少)这样回溯把路径打上标记,最后比较原...原创 2019-04-30 01:13:39 · 314 阅读 · 0 评论 -
2018HDU多校补题 HDU 6386 (双端队列+虚点)
题意:给定一张图以及每条路的类型,问从1到n至少需要换几次路可以走到。图的大小是n=1e5n=1e5n=1e5,m=2e5m=2e5m=2e5题解:首先想到这道题的最暴力的做法即,把每条边看出一个点,对于相邻的两条边连边,若这两条边类型相同则边权为000,否则边权为111。但是这样的化图的大小就是m2m^2m2级别的了,所以想到建立虚点,第一种虚点即结点,建立<n,m+n,1&...原创 2019-07-11 23:36:15 · 229 阅读 · 0 评论 -
gym 101987 J Starwars(bfs)
题意给定一张1e3的有向图,每条路径都有一个编码 (编码范围为20),并给出一些人类点,和目的点,求是否存在从非人类点出发到目的点的路径编号序与人类店出发到目标点的路径编码序一样。存在输出YES,否则NO题解倒着去考虑,假若存在一条一样的路那么从后往前回溯路径发现两条路径的起点都为目标点,终点一个为人类点,一个为非人类点,之后我们考虑两个状态代表人类和非人类,他们的出发点都为目标点,之后他们...原创 2019-10-03 22:56:53 · 484 阅读 · 0 评论 -
gym 101194 F Mr. Panda and Fantastic Beasts(SAM+BFS)
题意给定n个字符串,从第一个字符串中找到一个字典序最小的字串使其只出现在第一个串中题解对于这n个串建立广义后缀自动机,并对第一个串的np节点打上标记0,对于其他串的np节点打上标记1,之后我们对于每个np节点更新其后缀链,使得整个DF...原创 2019-10-06 21:20:30 · 244 阅读 · 0 评论