题解:CF1656I Neighbour Ordering
Otomachi_Una_ · · 题解
好牛的题/se
首先显然可以拆开每个 scc 考虑。
首先发现,一个
但是你再发现,下面这种东西也是无解的,就成为核仁图:
然后你大概手搓一下这种东西,就能发现其构型肯定有个哈密顿圈,圈上有些不相交的边。
大概长这样。
然后构造是简单的,只要把每个点的边顺时针排序即可。
问题是怎么找出每个 scc 的哈密顿圈。考虑上面的广义串并联图技巧,但是根据上面核仁图的反例,我们大概是不能缩重边的。于是我们只需要去缩二度点。
考虑一个二度点
其实这里也不需要递归,我们只需要倒过来相当于每次加入一个点
可以证明,合法的图都能通过这种方式构造。只需要判断每次加入一个点