12.1 省选训练总结2(1) 点分治/平衡树
2017-12-01 09:59
183 查看
目录
点分治
完成情况 | 题目 | 出处 |
---|---|---|
Tree | POJ 1741 | |
权限题 | Race | BZOJ 2599 [IOI2011] |
AC | 聪聪可可 | BZOJ 2152 |
D Tree | HDU 4812 | |
Amaz1ng Prime | CDOJ 1562 | |
权限题 | 采药人的路径 | BZOJ 3679 |
Attack and Defence | Osipovsky Cup 2014 |
Splay
完成情况 | 题目 | 出处 |
---|---|---|
AC | 普通平衡树 | BZOJ 3224 Tyvj 1728 |
AC | 宠物收养所 | BZOJ 1208 [HNOI2004] |
Book 书架 | BZOJ 1861 [ZJOI2006] | |
永无乡 | BZOJ 2733 [HNOI2012] | |
Army Formations | HDU 6133 | |
AC | 文艺平衡树 | BZOJ 3223 Tyvj 1729 |
AC | Cards Sorting | Codeforces 830B (#424) |
完成情况截图
聪聪可可
普通平衡树
文艺平衡树
宠物收养所
Cards Sorting
点分治
首先找重心,然后对过了重心的路径计算,最后递归点分。前4道题是点分裸题,就不赘述。
Amazing Prime
给定一棵树,边带权(0或者1),问你树上有多少条路径满足权值之和为素数。对于每一个答案,计算式:
num[x]=f[0]∗f[x]+f[1]∗f[x−1]+...+f[x]∗f[0]
所以对于所有num,做卷积(需要FFT)。
采药人的路径
给你一棵树,边带权(1或者−1),问你树上有多少条路径满足边权和为零,且存在一个中间点,使得该点到路径两个端点的边权和都为零。这个题首先我们把前缀和中有和这个前缀和相等的,给他打标记。这样意思就是说到重心的路上有一个可以作为中间点的。
然后可以匹配的点分四类:
为0没有标记:所有其他树上的0。
为0有标记:所有其他树上的0和重心。
不为0没有标记:有标记的相反数。
不为0有标记:所有相反数。
Attack and Defence
给你一棵树,每个点有一个左括号或者右括号,问你树上能够完美匹配的路径数量(l→r,r→l 视作不同路径)。首先(→1,)→−1。
合法的左半边:前缀和均大于0。
合法的右半边:前缀和均小于0。
然后一般的点分思想,只是不合法的就不计答案并且不加入维护。
Splay
Splay通过大量的Splay逐渐使其平衡。Splay可做几乎所有动态的区间操作问题。普通平衡树,文艺平衡树,以及宠物收养所是板题,就不总结。
Book 书架
给定初始时书架上从上往下的书本的编号,维护这个书架,支持放到顶,放到底,前移一个,后移一个,询问。首先左右设置足够大的空间,然后放到底放到顶就放到左右的空位,前后移就是和前驱后继交换。
永无乡
维护一张点带权无向图,支持连接某两个点,询问某个连通块内权值的K小值是多少。一个纯纯的无旋Treap好不好!当然也可以Splay启发式合并。
Army Formations
给你一颗树,每个结点的儿子数不超过2。每个结点有一个权值,一个结点的代价被定义为将其子树中所有结点的权值放入数组从大到小排序后,每个权值乘以其下标的和。让你计算所有结点的代价。启发式合并!每一次将Splay大小较小的结点的权值全提取出来塞到较大的里面。每一个有点大的值会使一些小值后移,后移一个的增加代价就是他自己。
Cards Sorting
一列卡片,一个人,每次从卡片的最左端开始,依次看过去,如果它是当前的全局最小值,那么将它移除,如果不是,那么将它放到序列的最右端。持续到序列为空为止。问你他进行的这两种操作的总次数。首先想法是找到最小值,把最小值前的区间活摘下来放到末尾。细思发现只需要Splay删除点到根然后交换左右子树就好了!
总结
树上路径问题可以考虑点分治,主要考虑如何求跨过重心的路径,细节要注意多考虑,包括是否选入重心、是否算重等等。Splay可以解决大多数区间动态操作。应熟练掌握模板!
相关文章推荐
- 12.1 省选训练总结
- 周训练总结 0.11
- 训练总结 10.15
- ACM训练周末总结—11月12日
- 训练总结 10.19
- 深度学习训练的小技巧,调参经验。总结与记录
- 算法竞赛入门经典训练指南-P4例题3 分金币问题总结
- LeNet5训练Mnist回顾总结
- 训练总结 8.16
- 2017年11月16日训练总结
- 点分治总结
- NOIP 10.4~10.7训练总结
- 硬件综合训练中期总结
- 首届华中区程序设计邀请赛暨第十届武汉大学程序设计大赛训练总结【8/11】
- 使用caffe训练faster-rcnn时遇到的问题总结
- 训练总结 7.31
- 第十三周训练总结(一)
- ACM训练周末总结—9月3日
- 做中学之乒乓球刻意训练一年总结
- 薛开宇学习笔记二之总结笔记--caffe imagenet训练中train_val.prototxt中数据层及其参数设置