堆
文章平均质量分 89
里阿奴摩西
这个作者很懒,什么都没留下…
展开
-
[乱搞 || 可持久化字典树 堆] BZOJ3689 异或之
%%hzwer:http://hzwer.com/3657.html好可怕,暴力大法好什么可持久化字典树,蒟蒻不会#include#include#includeusing namespace std;typedef long long ll;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (原创 2016-03-18 20:02:57 · 721 阅读 · 0 评论 -
[可持久化可并堆 || ST表 点分治] BZOJ 3784 树上的路径
显然是用堆来维护 每弹出一个解 加入其后继 怎么定义后继 经典做法是点分后维护一个类似超级钢琴的东西 首先对这棵树进行点分治,在分治的时候将所有点到根的距离依次放入一 个数组qq中 对于一棵子树里的点,合法的路径一定是qlql到qrqr的某个数加上自己到重心的距离 定义五元组(v,l,m,r,w)(v,l,m,r,w),表示当前路径长度为vv,在[l,r][l,r]里选出最原创 2017-02-23 12:54:28 · 788 阅读 · 0 评论 -
[堆] POJ 3481 Double Queue
就是很基础的两个堆 无聊了打打据说有人用平衡树?#include#include#include#include#includeusing namespace std;typedef pair abcd;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p原创 2016-11-25 20:21:09 · 310 阅读 · 0 评论 -
[A* K短路 || 可持久化堆] POJ 2449 Remmarguts' Date
这就是裸的k短路了 学习一发A*的姿势:http://yzmduncan.iteye.com/blog/1162759这个S==T的坑要注意#include#include#include#include#include#define V G[p].vusing namespace std;inline char nc(){ static char buf[原创 2016-05-02 21:12:45 · 566 阅读 · 0 评论 -
[K短路 可持久化堆 最短路径树] JDFZ 2978 第k短路(强)
链接:https://oj.jdfz.com.cn/oldoj/problem.php?id=2978鼎爷的【课件】堆的可持久化和k短路#include#include#include#include#include#include#define cl(x) memset(x,0,sizeof(x));using namespace std;ty原创 2016-12-21 07:06:27 · 936 阅读 · 0 评论 -
[K短路 可持久化堆] HDU 5960 Subsequence
建图不难 然后直接上K短路 A*被完虐#include#include#include#include#include#include#define cl(x) memset(x,0,sizeof(x));using namespace std;typedef long long ll;inline char nc(){ static char buf[1000原创 2016-12-21 07:09:55 · 1064 阅读 · 0 评论 -
[哈夫曼树 堆] BZOJ 2923 [Poi1998]The lightest language
详见BYVOID大神的blog可以看出这是一棵哈夫曼树的若干叶子节点 那么我们开始考虑从一棵空树扩展如果叶节点数小于n 那么取最小的扩展否则 如果取最小的扩展 答案更优的话继续 不优的话之后同样不会变优 扩展时记得删去一些最大的数 保持堆的大小#include#include#include#includeusing namespace std;inli原创 2016-12-17 11:39:59 · 629 阅读 · 0 评论 -
[贪心 堆 链表] BZOJ 3502 PA2012 Tanie linie & 51Nod 1052 最大M子段和
做法同2280 1150多年前的代码丑#include#include#include#includeusing namespace std;typedef long long ll; inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf原创 2016-05-02 13:53:44 · 588 阅读 · 0 评论 -
[堆 贪心] Canada Cup 2016 D. Contest Balloons
不想多说#include#include#include#includeusing namespace std;typedef long long ll;typedef pair abcd;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+fr原创 2016-10-31 17:58:48 · 302 阅读 · 0 评论 -
[倍增 堆] BZOJ 4458 GTY的OJ
题解:JudgeOnline/upload/201604/Solution-4458.rar By jinlifu1999超级钢琴...都已经成经典了本来想打树链剖分和ST表的,后来看题解发现倍增更好打,膜打树链的Evan题目后跟个题解链接是SMG#include#include#include#includeusing namespace std;原创 2016-04-13 10:16:20 · 818 阅读 · 0 评论 -
[堆 思路题] BZOJ 4524 [Cqoi2016]伪光滑数
可持久化可并堆+DP:http://blog.csdn.net/liuguangzhe1999/article/details/51132255我也不想这个有趣的方法就这么绝迹了呢 但是我不会打堆:http://blog.csdn.net/dropd/article/details/51138254#include#include#include#incl原创 2016-04-18 20:37:11 · 598 阅读 · 0 评论 -
[KD-TREE 堆] BZOJ 2626 JZPFAR
求第k远的点 大暴力啊#include#include#include#includeusing namespace std;typedef long long ll;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+fread(buf,1原创 2016-06-19 14:12:26 · 467 阅读 · 0 评论 -
[主席树套堆 区间修改 标记永久化] BZOJ 3489 A simple rmq problem
“因为是OJ上的题,就简单点好了。” Orz看看贴吧吧:http://tieba.baidu.com/p/2947256742#47989538012l记一下next 从左到右 删了之前的标记 再从这个点到next-1都打标记 然后就可以查询了按一个坐标离线做强制转在线么 用主席树好了 第一次打主席树区间修改 空间两个log 不过这个的前提是标记永久化 不然就是n2了原创 2016-05-13 16:17:40 · 1204 阅读 · 0 评论 -
[KD-TREE 堆] BZOJ 4520 [Cqoi2016]K远点对
题意:k远点对不难想 用堆维护#include#include#include#includeusing namespace std;typedef long long ll;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+fread(buf原创 2016-05-18 18:31:19 · 550 阅读 · 0 评论 -
[树链剖分 线段树 堆] BZOJ 4538 [Hnoi2016]网络
裸的树链剖分线段树里套个堆 最暴力的打法还有一种做法是考虑二分答案,如果大于答案的边都经过询问点,则往小的二分否则往大的二分。这样我们只要维护路径的交集。用rmq求lca的话可以做到O(1)求出两条路径的交集。可以离散后用线段树维护二分结构,并在对应的节点上记录路径交集O(logn)内回答询问了。原创 2016-04-21 13:32:40 · 501 阅读 · 0 评论 -
[堆] hihoCoder Challenge 29 D. 不上升序列
出烂了的原题,有可并堆的做法 然而昨晚翻原题的时候发现了精妙的做法看这里 令fi(x)f_i(x)为前ii个数,调整出最大值不超过xx的最小代价 那么fif_i是一条不升的折线 考虑转移 fi(x)=∑y≤xfi−1(y)+|ai−y|f_i(x)=\sum_{y\le x}f_{i-1}(y)+|a_i-y| 这实际上是两条折线合并一下 我们讨论两者的位置关系 实现的话只需要在堆中记下原创 2017-06-26 15:54:44 · 1068 阅读 · 5 评论