数据结构-左偏树
文章平均质量分 57
tianxiang971016
ztx97
blog.ztx97.win(希望有生之年搭起来
展开
-
[BZOJ1576] [Usaco2009 Jan]安全路经Travel
题意NN点MM边,N−1N-1头牛从11沿最短路径走到对应的2...N2...N这N−1N-1个点。询问避开牛经过的最后一条边到达相应点的最短路径长度。输出这N−1N-1个长度。题解我们暂且称避开最短路最后一条边的路径为“次短路”(不是真正的次短路)。 首先将最短路经过的最后一条边都求出来,这些边将形成一棵以1为根的树。 考虑到达点u的答案。若避开点u与fa[u]中的这条边,那么次短路必然是从点原创 2017-08-02 22:52:15 · 299 阅读 · 0 评论 -
[BZOJ1367] [Baltic2004]sequence
题意给定一个序列t1,t2,…,tNt_1,t_2,\dots,t_N,求一个递增序列z1<z2<⋯<zNz_1<z_2<\cdots<z_N,使R=|t1−z1|+|t2−z2|+⋯+|tN−zN|R=|t_1-z_1|+|t_2-z_2|+\dots+|t_N-z_N|最小。输出R的值。N≤106N\le 10^6题解这道题是黄源河2005年国家集训队《左偏树的特点及其应用》中的例题,里面有严谨原创 2017-08-02 22:14:52 · 377 阅读 · 0 评论 -
[BZOJ2171] K凹凸序列
题意一个序列的第1,3,5…项被称作奇数项,第2,4,6…项被称作偶数项。一个序列A[1..n]被称作ZigZag序列当且仅当以下两个条件中的一个(或两个)成立: 1)除了首项,所有的奇数项都比它的前项小且所有的偶数项都比它的前项大。 一个序列A[1..n]被称作K凹凸序列当且仅当它的最长ZigZag子序列(不一定是连续子序列)的长度不超过K。现在有一个序列A[1..n],每次可以花费1的代价原创 2017-08-02 23:12:59 · 402 阅读 · 0 评论 -
[BZOJ4003] [JLOI2015]城池攻占
题意有nn个城池组成树,根为11,mm个人,当一个人的战斗力sis_i大于等于攻打城市的防御力hih_i,就能攻占这个城市,来到这个城市的父节点,否则该人会牺牲在这个城市。当一个城市被攻占时,会使攻占的人的战斗力加或乘上某个数。现在给出m个人的最开始攻打的城市和初始战斗力,求在每个城市的牺牲人数和每个人一共攻打几个城市。其中每个人对某城市的攻击结果不影响他人,即A攻破了此城市,B也需攻打。题解很容易原创 2017-08-03 01:18:58 · 312 阅读 · 0 评论 -
[HDU1512] Monkey King
题意N只好斗的猴子.开始,他们各自为政,互不相干.但是猴子们不能消除争吵,但这仅仅发生在两只互不认识的猴子之间.当争吵发生时,争吵的两只猴子都会求助他们各自最强壮的朋友,并且决斗.当然,决斗之后,两只猴子及他们所有的朋友都相互认识了,并且成为朋友,争吵将不会在他们之间发生. 假定每一只猴子有一个强壮值,在每次决斗之后变为原来的一半(例如,10将为变为5,5将会变为2). 假定每一只猴子认识他自己原创 2017-08-03 10:54:11 · 288 阅读 · 0 评论 -
[BZOJ2809] [Apio2012]dispatching
题意N个点形成一棵树。每个点三个属性父亲节点Bi、薪水Ci、领导力Li,现在选一些点,对这些点付薪水,同时另选一个点(可以是之前被付薪水的点)做管理者,使得被付薪水的点都在管理者的子树中。定义顾客的满意度为派遣的忍者总数乘以管理者的领导力水平,在预算M内使顾客的满意度最大。输出最大的满意度。题解相同的预算,薪水尽量少则选的点尽量多,于是每个子树中维护一个大根堆,不断删掉堆顶直到堆中元素的和不超过M,原创 2017-08-03 11:08:21 · 242 阅读 · 0 评论