刷题之路_3

原题

在直接kruskal做法WA了n回,终于明白

紫题不是我这种蒟蒻不撞南墙心不死就能做出来的,

一定会用到我不知道的做法

一开始dfs担心会超时,但实际上加vis遍历一遍图只是O(N)的复杂度,以实际为准

left questions

1.分离出可到达的边组成新图的条件和必要性

加入不能到达的边会出错

2.cmp以点的高度为第一关键字的原因

从高处往低处加边,较高处点一定可以滑到更多的地方

techniques

处理高度的限制条件

只从高处往低处建单向边,高度相等时建双向边

(在本题中高度相等的点之间的边不会被重复加两次,因为dfs加vis已保证只能从两个高度相等的点中的一个点到另一个点,两点之间的边只加一次)

expansion

如果没有给出根为1(“a180285站在1号景点望着山下的目标,心潮澎湃”)

dfs(1->n),找能到达点最多的点作根?(一定对但很慢)

如果是联通图,找高度最高的做根?(如果高度最高的旁边一圈全是高度最小的,这种做法还可行吗?大概不行)
example

猜你喜欢

转载自www.cnblogs.com/StarOnTheWay/p/10630386.html