码迷,mamicode.com
首页 >  
搜索关键字:启发式合并    ( 251个结果
BZOJ 2809 APIO 2012 dispatching 平衡树启发式合并
题目大意:给出一棵树,每一个节点有两个值,分别是这个忍者的薪水和忍者的领导力。客户的满意程度是这个点的领导力乘能够取得人数,前提是取的人的薪水总和不超过总的钱数。 思路:只能在子树中操作,贪心的想,我们只要这个子树中cost最小的那些点就可以了。所以就深搜一次,每到一个节点上,把自己和所有子节点的平衡树启发式和并,然后保留不超过总钱数的人数,统计。数据范围比较大,能开long long的...
分类:Windows程序   时间:2014-10-24 10:59:06    阅读次数:248
BZOJ 2733 HNOI2012 永无乡 Treap+启发式合并
题目大意:给定一个无向图以及n个点的排名,多次连接一条边,多次求某个点所在联通块中排名第k小的点的编号 初始对于每个点建立一棵只有一个节点的Treap,然后每次连接两个点,利用并查集找到两个点的根节点,将size较小的Treap暴力拆解插入大的中,然后将小的并查集合并到大的中 今天下午各种脑残,一个小小的Treap改了不下10遍0.0 快去喝脑白金0.0 #include #include ...
分类:其他好文   时间:2014-10-23 17:42:12    阅读次数:228
BZOJ 3123 SDOI 2013 森林 可持久化线段树+启发式合并
题目大意:给出一个森林,每个节点都有一个权值。有若干加边操作,问两点之间路径上的第k小权值是多少。 思路:这题和COT1比较像,但是多了连接操作。这样就只能暴力合并连个树。启发式合并会保证时间复杂度不至于太大。然后就是用可持久化线段树维护一个树的信息,按照dfs序来建树,每个节点的可持久化链的参考版本就是它父亲的版本。之后利用权值线段树可区间加减的特性,用f[x] + f[y] - f[...
分类:其他好文   时间:2014-10-21 10:26:39    阅读次数:265
BZOJ 3674 可持久化并查集加强版 可持久化并查集
题目大意:同3673 强制在线 同3673 只不过慢了一些0.0 这道题只写路径压缩比只写启发式合并要快一点点 两个都写就慢的要死0.0 改代码RE的可能是内存不够 #include #include #include #include #define M 200200 using namespace std; struct Tree{ Tree *ls,*rs; int num; }...
分类:其他好文   时间:2014-10-20 19:30:35    阅读次数:164
BZOJ 3123 SDOI2013 森林 可持久化线段树+倍增LCA+启发式合并
题目大意:给定一棵森林,每个点有权值,提供两种操作: 1.查询两点间路径上第k小的权值 2.将两个点之间连一条边 保证连接后仍是一座森林 可持久化线段树部分同Count On A Tree 只是这道题加了个连接操作 对于连接操作我们要用到启发式合并 就是把小的那棵树暴力重建 很简单的一个操作但是可以证明是均摊O(nlogn)的 大小我用了并查集 其实记录根就可以了 此外本题的多组数据是...
分类:其他好文   时间:2014-10-20 13:36:39    阅读次数:291
BZOJ 2733 HNOI 2012 永无乡 平衡树启发式合并
题目大意:有一些岛屿,一开始由一些无向边连接。后来也有不断的无向边加入,每一个岛屿有个一独一无二的重要度,问任意时刻的与一个岛屿联通的所有岛中重要度第k大的岛的编号是什么。 思路:首先连通性一定要用并查集维护,然后就是联通快内的第k大问题,显然是平衡树。但是并查集的合并怎么搞?可以考虑按秩合并,这样的话就保证每次在平衡树中处理的元素尽量的少,就可以水过这个题了。 注意一下输出-1的判断...
分类:其他好文   时间:2014-10-17 12:03:21    阅读次数:198
HDU 5029 Relief grain(离线+线段树+启发式合并)(2014 ACM/ICPC Asia Regional Guangzhou Online)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5029Problem DescriptionThe soil is cracking up because of the drought and the rabbit kingdom is facing ...
分类:其他好文   时间:2014-09-22 02:39:21    阅读次数:291
【pb_ds】【平衡树启发式合并】【并查集】bzoj2733 [HNOI2012]永无乡
用并查集维护联通性。对每个联通块维护一个平衡树。合并时启发式合并。比较懒,用了pb_ds。 1 #include 2 #include 3 #include 4 using namespace std; 5 using namespace __gnu_cxx; 6 using namespace _...
分类:其他好文   时间:2014-09-13 10:32:35    阅读次数:180
Codeforces Round #263 (Div. 1) A B C
Codeforces Round #263 (Div. 1) A:贪心,排个序,然后从后往前扫一遍,计算后缀和,之后在从左往右扫一遍计算答案 B:树形DP,0表示没有1,1表示有1,0遇到0必然合并,0遇到1也必然合并,1遇到0必然合并,1遇到1,必然切断,按照这样去转移即可 C:树状数组,再利用启发式合并,开一个l,r记录当前被子左右下标,和一个flip表示是否翻转 代码...
分类:其他好文   时间:2014-08-30 12:38:09    阅读次数:281
NOI2002银河英雄传说
原先就看过这道题,觉得很复杂。不知道为什么今天一看觉得好水啊……难道这就是并查集的启发式合并?数组d【i】表示i到其父节点的距离,即中间隔了多少船舰。数组sum【i】记录以i为根的集合总共有多少个元素,将新节点插入的时候距离设为sum【i】就好了。代码: 1 var fa,d,sum:array[....
分类:其他好文   时间:2014-06-12 09:45:29    阅读次数:145
251条   上一页 1 ... 23 24 25 26 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!