splay
L_0_Forever_LF
一个热爱OI的OIer
展开
-
BZOJ2300: [HAOI2011]防线修建
每次删一个点或询问剩余点的凸包周长删一个点好麻烦呀,考虑离线,倒着操作将删点改为加点 然后就简单了,用一颗平衡树维护凸包中的点,倒着把点加回去 splay可以打set 论熟练运用STLcode:#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cmath>#include<原创 2016-11-13 16:37:36 · 590 阅读 · 0 评论 -
BZOJ 1552&3506 排序机械臂 解题报告
- -原创 2016-09-30 22:41:01 · 1082 阅读 · 0 评论 -
BZOJ3729: Gty的游戏
树上的阶梯博弈,需要维护每个点子树内奇数层石子的异或和,因为兹瓷插入,所以用splay维护dfs序,每个节点开2个节点,子树内的点插入到这两点之间替罪羊树跑的飞快code:#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cmath>#include<ctime>#includ原创 2017-04-26 19:48:01 · 609 阅读 · 0 评论 -
BZOJ3843: ZCC loves Army
把树转成左儿子右兄弟的那种二叉树的形式 发现一个点能且仅能给他的子树传递order,询问3就变成了询问一个点到根有多少个点 对于传递message,可以给每个点定一个编号0的虚儿子,给他赋权1,就变成了询问两点间路径的权值和,注意要特判一个点是另一个点的祖先的情况,bzoj上的数据有误,不判这个才能过,hdu上的数据是对的可以去那里交 对于操作1,把某个人的一段儿子截下来,可以用n棵splay原创 2017-12-25 08:37:14 · 411 阅读 · 0 评论 -
BZOJ1125: [POI2008]Poc
我是真的没有任何码力可言qwq splay维护串的hash值 每次更改hash值,在splay上给所有那个值的点打个答案标记 特殊处理交换同一个串code:#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cmath>#include<ctime>#include<bit原创 2017-12-08 09:42:31 · 500 阅读 · 0 评论 -
BZOJ3847: ZCC loves march
每个点如果不考虑被分裂出去,他至多只会被合并一次,维护两个set,每次合并可以暴力找出这一行/列的所有点,并查集资瓷一下合并成一个点,每次分裂可以直接新建一个点代表这个分出去的点code:#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cmath>#include<ctime>原创 2018-01-03 12:29:17 · 376 阅读 · 0 评论