bzoj 2001: [Hnoi2010]City 城市建设
来源:互联网 发布:上海淘宝客服招聘 编辑:程序博客网 时间:2024/06/06 01:37
前言
这题我没有打
要是想要偷代码的就可以移步了
主要是不是很想打,看懂了思路就没打了,来口糊一下做法,来假装自己AC了
最近蛮喜欢做分治题的,感觉挺神奇的
我觉得分治这个想法省时间的原因是他将很多信息并在了一起搞,将重复计算的都只算了一次,所以特别快
于是就开了这一个题
题解
这题考虑分治
考虑对询问进行分治
对于L~R这一个区间
很显然的,有很多边是已经确定了的,也就是1~L-1和R+1~n
我们不妨把这些边都弄出来
不难想到,这时候有哪些边一定要,或者一定不要已经确定了
我们先把L~R这些边标为一定要选,然后做一次最小生成树
那么这时,在树上的边,除了L~R这些,就肯定都是必选的
于是把他们选上,缩点
相反的,我们把L~R这些边标为一定不选,然后做一次最小生成树
那么这时,不是树上的边,除了L~R,就肯定都是不能选的
于是把他们都提出准备递归的边集
然后不断分治
最后到达L,R的时候,把剩下的边集做一次最小生成树就可以了
时间复杂度分析
对于每一个L~R,它最多连接(R-L+1)*2个点
也就是说没确定连通关系的最多只有这么多连通块
于是我们剩下的图的点数在缩完点之后就只有(R-L+1)*2个了
那么已经选择的边数也是知道的
由于第二步,我们也可以把有可能的边集缩小为R-L+1条
那么时间复杂度大概就是
大概就是
代码实现
没有,自己上网抄一个。。
阅读全文
0 0
- BZOJ 2001: [Hnoi2010]City 城市建设
- bzoj 2001 [Hnoi2010]City 城市建设
- bzoj 2001: [Hnoi2010]City 城市建设
- BZOJ-2001-city城市建设-HNOI2010-CDQ分治
- 2001: [Hnoi2010]City 城市建设
- 2001: [Hnoi2010]City 城市建设
- BZOJ 2001 Hnoi2010 城市建设
- bzoj-2001 City 城市建设
- bzoj2001【HNOI2010】City 城市建设
- bzoj2001 [Hnoi2010]City 城市建设
- bzoj2001: [Hnoi2010]City 城市建设
- 【BZOJ2001】[Hnoi2010]City 城市建设
- BZOJ 2001([Hnoi2010]City 城市建设-CDQ重构图-动态最小生成树)
- BZOJ 2001([Hnoi2010]City 城市建设-CDQ重构图-动态最小生成树)
- 【BZOJ】2001 [Hnoi2010]City 城市建设 cdq分治——动态最小生成树
- BZOJ 2001 [Hnoi2010]City 城市建设 LCT+分治(未成功卡时卡过)
- [动态最小生成树 CDQ分治 Kruscal] BZOJ 2001 [Hnoi2010]City 城市建设
- bzoj2001: [Hnoi2010]City 城市建设 wikioi2332
- python 类demo(2)__metaclass__批量化添加属性
- 汉诺塔移动
- 快速幂的使用,干掉了一道
- Bloom Filter介绍
- 【数据建模 极端值的检测】离群值检测
- bzoj 2001: [Hnoi2010]City 城市建设
- Power BI 利用Streaming Dataset 实现实时更新
- 父类中访问子类成员
- iOS_Cordova开发教程
- Deep Spatio-Temporal Residual Networks(深度时空残差神经网络)
- jacob word竖排文字变横排
- 使用Mercurial获取OpenJDK源码
- Windows快捷命令
- 1120: 最值交换