//poj 3016 K-Monotonic//分析:与2005年集训队论文黄源河提到的题目类似,给定序列a,求一序列b,b不减,且sigma(abs(ai-bi))最小。//思路:去除左偏树(大根堆)一半的节点(向上取整),让左偏树的根节点上存放中位数;每个左偏树的根节点表示一个等值区间//在本题...
分类:
其他好文 时间:
2015-02-01 23:07:17
阅读次数:
299
传送门: http://www.lydsy.com/JudgeOnline/problem.php?id=3011一想到这个第一反应是树形dp,然后10^18 (' ' ) 所以我直接搞了一个左偏树往上面不断合并(' ' ) 网上好像有人用的线段树维护区间(子树)最小值,不过我觉得我这个做法比...
分类:
其他好文 时间:
2015-01-27 01:46:04
阅读次数:
247
实现的功能——输入1 x,将x加入小根堆中;输入2,输出最小值并去在堆中除掉 1 var 2 i,j,k,l,m,n,head:longint; 3 a,lef,rig,fix:array[0..100000] of longint; 4 function min(x,y:longint...
分类:
编程语言 时间:
2015-01-19 23:24:43
阅读次数:
257
看来蒟蒻我还是直接退役算了。。。此题就是维护子树的和,删除子树中当前最大元素,并且可以合并两个子树信息,想到了左偏树。。。做完了233 1 /************************************************************** 2 Problem:...
题目大意:给定n个点,每个点有一个权值,提供两种操作:
1.将两个点所在集合合并
2.将一个点所在集合的最小的点删除并输出权值
很裸的可并堆 n
左偏树就是快啊~
#include
#include
#include
#include
#define M 1001001
using namespace std;
struct abcd{
abcd *ls,*rs;
int...
分类:
其他好文 时间:
2014-11-04 22:52:01
阅读次数:
241
题目大意:给定一棵树,选定一棵子树中的一些点,薪水和不能超过m,求点的数量*子树根节点的领导能力的最大值
考虑对于每个节点,我们维护一种数据结构,在其中贪心寻找薪金小的雇佣。
每个节点暴力重建一定不行,我们考虑可并数据结构,每个节点将子节点的信息直接合并即可
可以用启发式合并的Treap,也可以用可并堆
今天特意去学了这玩应0.0 先写了左偏树 然后又写了下随机堆…… 后者速度上更快一些 ...
现学的左偏树。。。这可是道可并堆的好题目。首先我们考虑z不减的情况:我们发现对于一个区间[l, r],里面是递增的,则对于此区间最优解为z[i] = t[i];如果里面是递减的,z[l] = z[l + 1] = ... = z[r] = 这段数的中位数,不妨叫做w。(此处我们定义中位数为第(r -...
分类:
其他好文 时间:
2014-10-18 22:18:42
阅读次数:
283
基本C/C++、STL(vector、set、map、queue、string、algorithm)枚举、贪心、递归、分治、递推、模拟构造、位运算、常数优化数据结构队列、堆、栈、链表排序(插入、冒泡、快速、归并、堆、桶、基数)二分查找、散列表、并查集、哈夫曼树排序二叉树、左偏树、平衡树(Splay/...
分类:
编程语言 时间:
2014-10-18 00:34:46
阅读次数:
340
基本枚举、贪心、递归、分治、递推、模拟STL(pair、vector、set、map、queue、string、algorithm)构造、位运算、常数优化数据结构队列、堆、栈、链表排序(插入、冒泡、快速、归并、堆、桶、基数)二分查找、散列表并查集、哈夫曼树排序二叉树、左偏树、平衡树(Splay/Tr...
分类:
其他好文 时间:
2014-10-05 11:03:18
阅读次数:
276
题意:
n堆数字 m个操作 操作是两个人轮流执行 有5种操作 T操作拿一堆数字 C操作两个人比较自己手中最大的数字胜者得到对方的数字 L操作扔掉最大数字 A操作使最大数字加上一个值 E操作是最大数字改变值 两个人按上述规则进行R轮游戏 问每局游戏的比分和最后谁赢
思路:
要么是合并一堆数字 要么从一堆数字里拿最大 很明显这时可并堆的操作 想到使用左偏树...
分类:
其他好文 时间:
2014-07-19 23:21:09
阅读次数:
391