NOI2014
2015-12-02 18:34
211 查看
Day1:
起床困难综合症:按二进制位从高位到低位贪心,能得到1则选1。
魔法森林:
Link-Cut-Tree动态维护最小生成树(最小瓶颈生成树)。
按边按a[i]从小到大排序,按顺序插入,维护以b[i]为边权的最小生成树,可以证明最小瓶颈即最小生成树上经过的最大边。
支持link,cut,query_max,Link-Cut-Tree即可。
Day2:
动物园:求出fail数组之后连边(fail[i],i),形成一个树形结构。i节点的num[i]即为它在树上到跟的路径经过的<=i/2的节点数。stack+二分即可。
随机数生成器:贪心。能选小的就选小的,维护当前可放位置,因为每个位置只会被标记为不可放一次,所以复杂度是靠谱的。
购票:很裸的斜率优化。但是因为加上了转移范围限制所以要用线段树维护区间的凸壳。又因为在树上所以我就数链剖分了。复杂度较高,推荐另外一种树分治的写法。
起床困难综合症:按二进制位从高位到低位贪心,能得到1则选1。
魔法森林:
Link-Cut-Tree动态维护最小生成树(最小瓶颈生成树)。
按边按a[i]从小到大排序,按顺序插入,维护以b[i]为边权的最小生成树,可以证明最小瓶颈即最小生成树上经过的最大边。
支持link,cut,query_max,Link-Cut-Tree即可。
Day2:
动物园:求出fail数组之后连边(fail[i],i),形成一个树形结构。i节点的num[i]即为它在树上到跟的路径经过的<=i/2的节点数。stack+二分即可。
随机数生成器:贪心。能选小的就选小的,维护当前可放位置,因为每个位置只会被标记为不可放一次,所以复杂度是靠谱的。
购票:很裸的斜率优化。但是因为加上了转移范围限制所以要用线段树维护区间的凸壳。又因为在树上所以我就数链剖分了。复杂度较高,推荐另外一种树分治的写法。
相关文章推荐
- 手把手教你如何安装和使用Karma-Jasmine
- 运算符逻辑示意图
- 学习Maven之Maven Surefire Plugin(JUnit篇)
- 柔性数组的原理
- UAPStudio授权过期的解决方法,重新授权
- XML约束
- 三元运算符“ ?: ”的应用
- active-mq的安装
- 【风马一族_代码英语】代码英语之一
- 各类运算符练习
- 虚拟化技术(一)之基础概念
- 关于如何在javascript中实现AOP
- js easyui messager.confirm 界面弹出框 焦点的修改
- iOS-UIView-设置背景图片4种方式
- wget源码分析(一):wget.h文件分析
- 【Swift 2.1】共享文件操作小结(iOS 8 +)
- jQuery源码学习12——动画加强
- 红黑树 C++实现
- 31、路由器搭建帧中继云
- 锐浪报表应用系列一(引入话题)