专栏文章
题解:CF1656I Neighbour Ordering
CF1656I题解参与者 2已保存评论 1
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @miqe5dkd
- 此快照首次捕获于
- 2025/12/04 03:19 3 个月前
- 此快照最后确认于
- 2025/12/04 03:19 3 个月前
好牛的题/se
首先显然可以拆开每个 scc 考虑。
首先发现,一个 同构的子图是无解的。这启发我们用点广义串并联技巧。
但是你再发现,下面这种东西也是无解的,就成为核仁图:

然后你大概手搓一下这种东西,就能发现其构型肯定有个哈密顿圈,圈上有些不相交的边。

大概长这样。
然后构造是简单的,只要把每个点的边顺时针排序即可。
问题是怎么找出每个 scc 的哈密顿圈。考虑上面的广义串并联图技巧,但是根据上面核仁图的反例,我们大概是不能缩重边的。于是我们只需要去缩二度点。
考虑一个二度点 ,有个 。那么我们删掉 ,加上 。那么在剩下的图构造完之后,我们把 插入到 之间即可。
其实这里也不需要递归,我们只需要倒过来相当于每次加入一个点 即可。
可以证明,合法的图都能通过这种方式构造。只需要判断每次加入一个点 时, 是否相邻。用链表维护一下就行。
相关推荐
评论
共 1 条评论,欢迎与作者交流。
正在加载评论...