![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
priority_queue
Cyhlnj
这个作者很懒,什么都没留下…
展开
-
(右偏树)Bzoj2333: [SCOI2011]棘手的操作
题面戳我Sol右偏树滑稽+并查集 再在全局开一个可删除的堆(priority_queue) 注意细节# include # define RG register# define IL inline# define Fill(a, b) memset(a, b, sizeof(a))using namespace std;typedef long long原创 2018-01-12 21:05:00 · 407 阅读 · 0 评论 -
Bzoj2006: [NOI2010]超级钢琴
题面传送门Sol求前缀和之后,每次枚举左端点,找到相应的区间最大值,丢到堆里面 每次取出一个就拿出来找下一个最大值再丢进去 那么就是要求区间第kk大,主席树就好了 因为数组开小了和没开longlong,WA无数遍 我太菜了太菜了太菜了# include # define IL inline# define RG register# define Fill(原创 2018-01-23 10:28:09 · 191 阅读 · 0 评论 -
动态点分治:Bzoj1095: [ZJOI2007]Hide 捉迷藏
简介这是我自己的一点理解,可能写的不好 点分治都学过吧。。 点分治每次找重心把树重新按重心的深度重建成了一棵新的树,称为分治树 这个树最多有log层。。。 动态点分治:记录下每个重心的上一层重心,这棵分治树就确定了 修改就暴力在分治树中向上改,反正是log的 至于为什么叫动态点分治我不知道。。。我觉得就是点分治 做题时最主要的难点不在点分治,在于维护什么和怎样维护例原创 2018-01-12 17:19:34 · 513 阅读 · 0 评论 -
Bzoj4016: [FJOI2014]最短路径树问题
题面传送门Sol先SPFASPFASPFA求出单源最短路,BfsBfsBfs建出树,字典序可以用堆解决 然后就是点分治的一眼题 开桶记录到当前根经过边长度相同的最长路,记录它的长度自己强行yyyyyy了一个这种类型的点分丑陋写法# include <bits/stdc++.h># define RG register# define IL inl...原创 2018-02-26 14:54:48 · 355 阅读 · 0 评论 -
SPOJ QTREE5
题意一棵nnn个点的树,点从111到nnn编号。每个点可能有两种颜色:黑或白。 我们定义dist(a,b)dist(a,b)dist(a,b)为点aaa至点bbb路径上的边个数。 一开始所有的点都是黑色的。 要求作以下操作: 0i0i0 i 将点iii的颜色反转(黑变白,白变黑) 1v1v1 v 询问dist(u,v)dist(u,v)dist(u,v)的最小值,uuu与vvv可以相...原创 2018-03-24 11:01:44 · 358 阅读 · 0 评论 -
Bzoj4520: [Cqoi2016]K远点对
题面BzojSol维护一个小根堆,初始里面放2∗k2∗k2*k个元素(因为点对可能算两遍) 每个点KDTreeKDTreeKDTree暴力查询是否有与这个点距离大于堆顶的,替换堆顶就好了# include <bits/stdc++.h># define IL inline# define RG register# define Fill(a, b) memset...原创 2018-05-30 21:55:31 · 185 阅读 · 0 评论 -
LOJ#6035. 「雅礼集训 2017 Day4」洗衣服
传送门先处理出每一件衣服最早什么时候洗完,堆+贪心即可然后同样处理出每件衣服最早什么时候烘干然后倒序相加取最大值# include <bits/stdc++.h>using namespace std;typedef long long ll;const int maxn(1e5 + 5);int l, n, m, d[maxn], w[maxn];ll ans,...原创 2019-01-25 16:34:08 · 313 阅读 · 0 评论