专栏文章

题解:P14362 [CSP-S 2025] 道路修复 / road(暂无数据)

P14362题解参与者 32已保存评论 41

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
40 条
当前快照
1 份
快照标识符
@minflw8h
此快照首次捕获于
2025/12/02 01:37
3 个月前
此快照最后确认于
2025/12/02 01:37
3 个月前
查看原文
唉,太失败了,204pts。
提供一个 O(n2kα(n+k))O(n2^k\alpha(n+k)) 的做法。
给出一个结论:
如果一条边不在最小生成树上,那么加上若干条边后的最小生成树,这条边也不会出现。
回到本题,不妨枚举那些乡镇被城市化,问题变成一个最小生成树问题,已经有了个 O((nα(n+k)+(m+nk)log(m+nk)2k)O((n\alpha(n+k)+(m+nk)\log (m+nk)2^k) 做法。
显然无法通过,如果对于原图运用上面的结论,O(m)O(m) 边数会变成 O(n)O(n),这是已经变成,再结合归并,我们得到 O(2k(α(n+k)n+(nk+m)logk))O(2^k(\alpha(n+k)n+(nk+m)\log k)),已经很优秀了,卡卡常该过。
但是,我们还能更加简化,不妨考虑把每个情况的考虑边数变成 O(n)O(n) 的具体地,我们还是沿用上述结论,不妨考虑扔掉一个乡镇,剩下的边集得到的最小生成树是被处理出来过的,这是在加上这个乡镇的话又多了若干条边,由于上述结论,只有剩下的边集得到的最小生成树和多出来的边是有用的,归并后跑最小生成树即可。

评论

41 条评论,欢迎与作者交流。

正在加载评论...