12.2 省选训练总结
2017-12-03 19:33
218 查看
题目
LCT完成情况 | 题目 | 出处 |
---|---|---|
LCT AC | Bounce 弹飞绵羊 | BZOJ 2002 [HNOI2010] |
Cave 洞穴勘测 | BZOJ 2049 [SDOI2008] | |
链剖AC | 树的统计 Count | BZOJ 1036 [ZJOI2008] |
Housewife Wind | POJ 2763 | |
魔法森林 | BZOJ 3669 [NOI2014] |
完成情况 | 题目 | 出处 |
---|---|---|
平衡树AC | 普通平衡树 | Tyvj 1728 |
郁闷的出纳员 | BZOJ 1503 [NOI2004] | |
Persistent Bookcase | Codeforces Round #368 707D | |
AC | K-th Number | POJ 2104 |
花神的嘲讽计划Ⅰ | BZOJ 3207 | |
Couriers | BZOJ 3524 [POI2014] | |
AC | Count on a tree | BZOJ 2588 SPOJ 10628 |
谈笑风生 | BZOJ 3653 | |
权限题 | 简单题 | BZOJ 2683 |
权限题 | Peaks加强版 | BZOJ 3551 [ONTAK2010] |
AC | MEX-Query | Codeforces Gym 101237A |
GERALD07加强版 | BZOJ 3514 [Codechef MARCH14] | |
任务查询系统 | BZOJ 3932 [CQOI2015] | |
Gty的妹子序列 | BZOJ 3744 | |
可持久化并查集(&加强版) | BZOJ 3673-3674 | |
Dynamic Rankings | BZOJ1901 ZJU2112 | |
网络管理 Network | BZOJ 1146 [CTSC2008] | |
最大异或和 | BZOJ 3261 | |
ALO | BZOJ 3166 [HEOI2013] | |
XRQRS | BZOJ 4546 Codechef |
LCT
写都还写不来,只有口胡了bzoj2002 [Hnoi2010]Bounce 弹飞绵羊
一个点到root的链上就是他的轨迹,所以改的时候,只需要cut后access就可以了。并且答案是左子树size+1。
bzoj2049 [Sdoi2008]Cave 洞穴勘测
强行把x的树拉到另一颗树中,然后splay(x),就可以link了,然后打上标记。
bzoj1036 [ZJOI2008]树的统计Count
对于修改,只用splay他就直接改。而对于链查询,我们把u换成辅助树的根,然后access并splay,就可以了。对于修改,像之前一样,打标记。
poj2763 Housewife Wind
边权不好做,那么就把边变成一个点,就是新加一个val为边权的点就可以了。
bzoj3669 [NOI2014]魔法森林
对于有序的的a,我们需要维护b的最小生成树。如果现在加入的边为a,b那么答案=min(答案,a+树上1到n路径上的b的最大值)。
可持久化数据结构:
Codeforces Round #368 (Div. 2) D注意到操作只有对行的,所以强行可持久化(开一个巨大的二维数组)。
bzoj3207 花神的嘲讽计划Ⅰ
Hash后在主席树上查存在。
bzoj3524 [Poi2014]Couriers
注意到,区间众数的话,他的那边的数的个数一定比另一边要多,所以我们每次往多的儿子走。查到最后就是答案。(也可以用线段树维护矩阵,然后用众数的方法搞)
bzoj2588 Spoj 10628. Count on a tree
针对每一点建他到root的主席树,那么可以由他的父亲转移,只用改那一条链就可以了。答案应该是ansu+ansv−anslca−ansfalca。当然,这个如果lca就是root那么就不用减后面的那个了。还有要注意一点,就是传的时候要传root的值,害得我调了好久。
bzoj3653 谈笑风生
我们把答案分成a为b的祖先与b为a的祖先。后者好做,主要考虑前者。我们对于深度建主席树,然后统计答案时就直接那段区间和就可以了。
bzoj2683 简单题:
动态主席树,强行开新的点。
bzoj3551 ONTAK2010 Peaks加强版
就是对于这样的图,一定只有最小生成树上的边有用,所以,我们建出最小生成树,然后化边为点,这样得到图是一种神奇的图。他的性质是:
1.二叉树(好吧这题意义不大)
2.原树与新树两点间路径上边权(点权)的最大值相等
3.子节点的边权小于等于父亲节点(大根堆)
4.原树中两点之间路径上边权的最大值等于新树上两点的LCA的点权
所以对于每一个询问,答案就是他到lca与lca到ans的路上的最小值,这样,dfs序上搞。
Gym - 101237A - MEX-Query
区间mex,这个与之前的众数有点像,但是我们主席树中存这个值出现的最右位置,这样就可以一直向一边查询了。原理是:每个叶子节点存这个值出现的最右边的值,然后合并时按照min合并,查的时候只用查r那棵树,然后根据最值来搞。(因为避免了值的重复)。
bzoj3514 Codechef MARCH14 GERALD07加强版
预处理出每条边可以替代那条边。然后lct解决。
bzoj3932 [CQOI2015]任务查询系统
每个任务的时间一定是一个区间,所以,利用差分的思想,在l时加入一个任务,r+1时删除这个任务就可以了。把区间化成了单点修改。
bzoj3744 Gty的妹子序列
先分块处理出单独一块的答案,然后对于零散的点,直接主席树暴力算就可以了。
bzoj3673 可持久化并查集 by zky && bzoj3674 可持久化并查集加强版
并查集实际上就是一个数组。那么这道题就是可持久化数组,你连可持久化线段树都会了,那还不会可持久化数组?但是这道题还要注意,应该用按秩合并,才能支持回滚。
bzoj1146 [CTSC2008]网络管理
树状数组套主席树。带修主席树模板题。
可持久化Trie:(类似主席树,只不过是0,1区间)
bzoj3261 最大异或和记录一个前缀和(之所以不记后缀是因为后缀在变),然后用trie常用的贪心法求解。所以要用到可持久化trie。
bzoj3166 [HEOI2013]ALO
先预处理出每个点作为次小值的区间,然后在[l,i−1],[i+1,r]两个区间上查答案。至于预处理,先把元素从大到小排序,在一个个加入,这样类似odt的方式就可以了。
bzoj4546 codechef XRQRS
可以写可持久化trie与主席树结合。但是实际上不用主席树。因为可持久化trie也可以表示大小。(相当于二进制的主席树)
相关文章推荐
- 12.2 省选训练总结2(2) LCT/可持久化
- 【训练计划】ACM题集以及各种总结大全
- NOIP 10.4~10.7训练总结
- 训练总结 10.15
- 寒假训练1(分析与总结)
- 寒假训练2|总结
- 第十一周训练总结(一)
- 拓展训练总结
- ACM训练周末总结—11月12日
- 暑假训练总结2
- 目标检测网络总结+自己训练过程……
- 算法竞赛入门经典训练指南-P4例题3 分金币问题总结
- 第八周训练总结(一)
- 深度学习训练的小技巧,调参经验。总结与记录。
- 2017开学训练第十二周周中总结
- 训练总结 9.24
- 2017 SiChuan collegiate programming contest 训练总结 【持续更新中】
- 训练总结 8.23
- 2016NOIP联赛训练总结
- 训练总结