图论做题记录

图论

P9697 [GDCPC2023] Canvas

贪心的,2 放后面,1 放前面,我们就只考虑 1 和 2。我们要让 2 尽可能地多,那么就是 2 要放在 1 后面,如果有一次操作 x1 y2,另一次操作 z1 x2。显然要把第二次放在一后面。我们可以倒着来,如果一次操作是 (l,1,r,2),则将 lr 连一条有向边。这样子缩点以后就是从入度为 0 的点出发,就能遍历每条边,并且只有入度为 0 的点值为 1。有一个细节就是如果这里入度为 0 的点可能是一个强连通分量,我们可以随便钦定一个点为起点,但如果 22 的操作在前面覆盖了这个点,我们就选择这个点为起点,这样子起点权值也为 2 了。

AT_abc173_f

CF1903F

最大化最小考虑二分答案,这样可以改为判定性问题。点覆盖我们可以 2-sat,图上的每条边是一端不选另一端就必须选。考虑 mid 要是最小的编号差,那么选了 i 就不能选与 i 距离小于 mid 的点,这个是点对区间,线段树优化即可。

posted @   qqrj  阅读(17)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
点击右上角即可分享
微信分享提示