专栏文章
qoj1824 一个也许更简单的做法
个人记录参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @ming66o2
- 此快照首次捕获于
- 2025/12/02 01:52 3 个月前
- 此快照最后确认于
- 2025/12/02 01:52 3 个月前
Solution
定义关键点为与某些关键边相邻的点。
首先判一下是否存在由关键点构成的环,若有就直接输出。
然后把所有关键边的连通块找出来。对于每个连通块:
- 若这是环,直接选它作为答案即可;
- 若这是链,则选了一端后一定会选另一端,我们把这一整条链缩为一条关键边即可;
- 否则这啥也不是,最终答案一定不能碰到这个连通块,直接把这个连通块包含点所有点删掉即可。
现在我们将问题转化为了所有关键边不相交的问题。不难发现此时答案一定是关键边与非关键边交替的形式。
考虑处理出每两个关键点之间,不经过其他关键点能否互相到达。建一个只包含关键点的新图,将原图的关键边在新图上连一条实边,将能够不经过其他关键点互相到达的关键点对之间连一条虚边,则新图上一个虚实交替的简单环对应原图中一个 不一定简单 的合法环,这里不一定简单是因为两条虚边在原图对应的路径可能相交。
考虑在新图上找到一个虚实交替的简单环,这个以每条边为状态,bfs 一下看有没有环即可。然后处理一下对应到原图不简单的情况,只需要找到重复的那个点,从中间断开即可。
目前没写,但是口胡感觉很有道理啊!!!
upd:过了。
upd:好像假了,找虚实交替的简单环部分的做法大概是有问题的,但还是很神秘的过了。不知道有没有人能卡一下。
Code
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...