bfs
林黛玉倒拔垂杨柳
你我最后也平凡到自命不凡
展开
-
中国石油大学秋季组队训练赛 Equidistant (树上多源BFS)
题目链接:点此跳转题目大意:给定一颗n个结点的树和m个树上的节点,问是否存在一个节点到m个点的距离相等,一条边距离为1,存在的话输出YES和此节点,反之输出NO。解题思路:因为树上两点的距离为1,bfs每层只能走1,同时要到m个点的距离相等,我们可能想到的是:枚举每个点bfs看能不能更新成功,但是因为n的范围是2e5,所以会t,因此我们可以在m个点多源bfs,记录分别能到的点,然后判定即可。 (一开始一直想的是树上两点的距离,直接往lca上莽了,然后憋了一个多小时,看了题解才知道是BFS,当场脑溢血)原创 2020-10-11 09:46:45 · 1030 阅读 · 3 评论 -
牛客国庆集训派对Day6 最短路 (最小生成树 + lca + bfs)
题目链接:点此跳转题目大意:给一个连通图,每次询问两点间最短路。每条边的长度都是1。第一行两个整数n和m,表示图的点数和边数(1≤ n≤ 100000, 1≤ m≤ n+100)。解题思路:因为这道题边的范围比较特别,1≤m≤n+100。我们先假设m恰好是n-1即图为一棵树,那么我们可以通过最近公共祖先求得两点的最近距离为dep[a]+dep[b]-2*dep[lca(a,b)]。现在又多出来100条边,我们要怎么处理呢?答案是:bfs 直接对这些边的一个端点开始暴力搜索最短路即可。Code:原创 2020-10-05 19:35:47 · 983 阅读 · 3 评论 -
AcWing 848. 有向图的拓扑序列 (拓扑排序模板)
有向图的拓扑排序给定一个n个点m条边的有向图,点的编号是1到n,图中可能存在重边和自环。请输出任意一个该有向图的拓扑序列,如果拓扑序列不存在,则输出-1。若一个由图中所有点构成的序列A满足:对于图中的每条边(x, y),x在A中都出现在y之前,则称A是该图的一个拓扑序列。输入格式第一行包含两个整数n和m接下来m行,每行包含两个整数x和y,表示存在一条从点x到点y的有向边(x, y)。输出格式共一行,如果存在拓扑序列,则输出拓扑序列。否则输出-1。数据范围1≤n,m≤1e5拓扑排序:判原创 2020-09-01 12:15:07 · 316 阅读 · 0 评论 -
2018蓝桥杯B组国赛第四题 调手表(bfs)
调手表小明买了块高端大气上档次的电子手表,他正准备调时间呢。在 M78 星云,时间的计量单位和地球上不同,M78 星云的一个小时有 n 分钟。大家都知道,手表只有一个按钮可以把当前的数加一。在调分钟的时候,如果当前显示的数是 0 ,那么按一下按钮就会变成 1,再按一次变成 2 。如果当前的数是 n - 1,按一次后会变成 0 。作为强迫症患者,小明一定要把手表的时间调对。如果手表上的时间比当前时间多1,则要按 n - 1 次加一按钮才能调回正确时间。小明想,如果手表可以再添加一个按钮,表示把当前的原创 2020-07-18 23:12:31 · 245 阅读 · 0 评论