Codeforces 455C Civilization(并查集+dfs)

博客介绍了如何解决Codeforces 455C问题,该问题涉及N个城市和M条已有的道路。在Q次操作中,需要处理查询和连接城市集合的任务,确保每次连接后最长路径达到最短。作者使用DFS预处理各个联通集合的最大路径,并通过并查集维护更新。解题关键在于连接操作时更新最长路径的策略:s = max(s, (s+1)/2 + (s0+1)/2 + 1)。" 47105433,1895683,Fragment嵌套更新:Fragment2点击按钮返回更新UI,"['Android开发', 'Fragment管理', 'ViewPager交互']
摘要由CSDN通过智能技术生成

题目链接:Codeforces 455C Civilization

题目大意:给定N,M和Q,N表示有N个城市,M条已经修好的路,修好的路是不能改变的,然后是Q次操作,操作分为两种,一种是查询城市x所在的联通集合中,最长的路为多长。二是连接两个联通集合,采用联通之后最长路最短的方案。

解题思路:因为一开时的图是不可以改变的,所以一开始用dfs处理出各个联通集合,并且记录住最大值,然后就是Q次操作,用并查集维护,注意因为联通的时候要采用最长路径最短的方案,所以s的转移方程变为s = max(s, (s+1)/2 + (s0+1)/2 + 1)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值