[luoguP2573]滑雪
原题
在直接kruskal做法WA了n回,终于明白
紫题不是我这种蒟蒻不撞南墙心不死就能做出来的,
一定会用到我不知道的做法
一开始dfs担心会超时,但实际上加vis遍历一遍图只是O(N)的复杂度,以实际为准
left questions
1.分离出可到达的边组成新图的条件和必要性
加入不能到达的边会出错
2.cmp以点的高度为第一关键字的原因
从高处往低处加边,较高处点一定可以滑到更多的地方
techniques
处理高度的限制条件
只从高处往低处建单向边,高度相等时建双向边
(在本题中高度相等的点之间的边不会被重复加两次,因为dfs加vis已保证只能从两个高度相等的点中的一个点到另一个点,两点之间的边只加一次)
expansion
如果没有给出根为1(“a180285站在1号景点望着山下的目标,心潮澎湃”)
dfs(1->n),找能到达点最多的点作根?(一定对但很慢)
如果是联通图,找高度最高的做根?(如果高度最高的旁边一圈全是高度最小的,这种做法还可行吗?大概不行)