
可并堆(左偏树)
LauZiyang
exploring
展开
-
省选专练APIO2012派遣
首先给了一个树。求出这一棵树上某子树的为权值*k个sum和小于m的数最大是多少。算法一• 枚举一个点x作为管理者• 计算x的后代集合,并按照C i 从小到大排序• 按照C i 依次取节点使得薪水之和不超过M , 得到S.• 计算L x ×|S|,取最大值.时间复杂度: O(N^2 logN)期望得分 : ≤ 30算法二• 基于算法一• 初始将所有节点按照C i 排序• 每次枚举点x的后代,直接...原创 2018-03-08 17:10:34 · 217 阅读 · 0 评论 -
模板 左偏树/可并堆
struct Leftist_Tree{ int lson[N]; int rson[N]; int root[N]; int dis[N]; int siz[N]; long long mullazy[N]; long long addlazy[N]; struct message{ int fa,val; }a[N]; void pushnow(long lon...原创 2018-03-21 20:10:59 · 141 阅读 · 0 评论 -
省选专练之数据结构 [BOI2004]Sequence 数字序列
论文题。左偏树只是维护结论的工具。第一步:转化为非强制单调(Ai-i)这是严格单调上升序列的常见操作。第二步:由三角不等式知:我们只需要维护单调的和中位数第三步:得知,需要一个可合并的大顶数据结构——左偏树。#include<iostream>#include<cstdio>#include<cmath>#include<c...原创 2018-07-26 15:46:42 · 427 阅读 · 0 评论 -
JLOI2015攻击游戏
小铭铭最近获得了一副新的桌游,游戏中需要用m个骑士攻占n个城池。 这n个城池用1到n的整数表示。除1号城池外,城池i会受到另一座城池fi的管辖,其中fi<i。也就是说,所有城池构成了一棵有根树。这m个骑士用1到m的整数表示,其中第i个骑士的初始战斗力为si,第一个攻击的城池为ci。 每个城池有一个防御值hi,如果一个骑士的战斗力大于等于城池的生命值,那么骑士就可以占领这座城池;否则占...原创 2018-09-27 22:38:28 · 1697 阅读 · 0 评论