2022.11.07

早上整了一下VSCode背景图,在setting里搓了一会,可以在linux上冲和background-cover效果一样的背景了。

CF1100E

显然要二分,然而重点是如何check和构造。
这时候,我们的topo就派上用场了(我太弱了又没想出来QAQ)。

  • check:
    我删掉了边权 \(\le mid\) 的边,我披星戴月奋不顾身地跑了一遍拓扑,只为证明 \(mid\) 是否可行。
    没错,既然能随便改边权 \(\le mid\) 的边的方向,那么判环的时候无视它就好了。如果删完边图里还有环,那么这些环上的点就不会被topo排到(都有入度),用vis数组记录遍历到的点,如果有没被遍历到的就是有环。
  • 构造:
    既然都二分跑出答案了,那么就先用答案作为check中的 \(mid\) 跑一遍topo,最后所有点都会被遍历到。在跑topo的过程中记录一下topo序,于是就有一个众所周知的性质:只要图中的编号都是由小指到大的,这张图就是一张DAG(我太弱了又没想到QAQ)。跑一遍topo已经保证了topo序由小指向大,只要让被我们删掉的边也由小指到大就好了。

都是经典的性质阿但是我太弱了没想到TAT。

插播

20:38 第一篇题解过审了!

posted @ 2022-11-07 10:27  Cotsheep  阅读(10)  评论(0编辑  收藏  举报