摘要: 图被划分成两块连通块,现用一条边将两块连通块连接起来,使得图的直径(最远的两个点的最短距离)最小 既然要求最短路径,观察数据范围,采用Floyd算法求得任意两点间最短路径 然后枚举所有不连通的两点,判断以当前两点间的距离为边将连通块连通得到的图的直径是否最小(在此之前要预处理出每个点在连通块内所能抵 阅读全文
posted @ 2020-09-07 22:20 Dazzling! 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 最大的一次收费最小,不由联想到二分 二分最大的一次收费mid,则要求从1走到n的路径上经过的点所收取的费用均不能超过mid 为了判断当前取mid能否走到终点,采用贪心的思想,应该走从1到n的最短路径(路径上的权值表示伤害,初始血量为b),即伤害最小 判断在伤害最小的路径上能否走到终点 const i 阅读全文
posted @ 2020-09-07 18:34 Dazzling! 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 最小瓶颈路单次询问模板题,s和t一旦连通输出对应的最大边即可 const int N=2e4+10; struct Node { int a,b,c; bool operator<(const Node &W) const { return c<W.c; } }e[N]; int p[N]; int 阅读全文
posted @ 2020-09-07 14:58 Dazzling! 阅读(135) 评论(0) 推荐(0) 编辑
摘要: $kruskal$同样可用于求最大生成树,本题只需求出最大生成树的前$k$条边即可 const int N=1e5+10; struct Node { int a,b,c; bool operator<(const Node &W) const { return c>W.c; } }e[N]; in 阅读全文
posted @ 2020-09-07 14:05 Dazzling! 阅读(132) 评论(0) 推荐(0) 编辑