图论
「已注销」
群科我向,斯战我魂.
展开
-
新千题计划 2#:[AHOI && JSOI14] 骑士游戏
最短路。可以用 Dijkstra,由于每个点影响入度,更新时扫一遍逆图逐个更新。此处不能保证初次出堆已最优,因此不能只出堆一次。为避免堆内重复元素重复处理,我们记录入堆权值,若出堆元素之入堆权值非其当前最优权值,则跳过。一个节点之每个出度都会使节点更新一次,为减少更新次数,我们记录 wiat[i] 数组(wait 貌似是关键字)代表能更新节点 i 之最后节点,wiat[i] 点出堆时再更新。原创 2018-08-14 10:53:21 · 256 阅读 · 0 评论 -
新千题计划 3#:[NOI18] 归程
生成树。此题先计算所有点到 1 号点的最短路,此后以海拔代替长度并且取反计算 Kruskal 重构树,根据 Kruskal 重构树的堆性,子树之海拔均大于根之海拔,则容易倍增找到行车区域之根节点。在 Kruskal 重构树同时更新“子树内最短路的最小值”,即可通过行车区域之根节点查询答案。原创 2018-08-16 14:38:45 · 278 阅读 · 0 评论