【CF542E】Playing on Graph

题目大意

给出一幅无向图。每一步操作你可以将两个没有边链接的点缩为一个点。问可以缩出的最长链长度。


分析

这道题一如既往地无从下手。
本来看出了貌似存在奇环答案就为-1,但是不知怎的验证时出错了就否定了这个结论。
其实这道题的关键就在于奇环和偶环。
首先奇环总是会被缩成三角形然后就没法缩了。所以存在奇环的图答案都为-1。
否则这个图必定为二分图。
那么问题就变成了它能缩出的最长链是什么。那么这里有个不易发现的结论就是它必定是这个联通块的最远两点的距离。
构造方法也很简单,只需要将到某个端点距离相等的所有点都缩起来就好了(这些点之间必定没有边否则就不是二分图了。)
找联通块最远两点就枚举起点然后最短路,记得用宽搜不然会超时。


Debug logs

11708652 Jun/22/2015 14:57 Time limit exceeded on test 19
Debug : 最短路用了dfs。
11708826 Jun/22/2015 15:10 Accepted

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值