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 · 408 阅读 · 0 评论 -
Bzoj2006: [NOI2010]超级钢琴
题面 传送门 Sol 求前缀和之后,每次枚举左端点,找到相应的区间最大值,丢到堆里面 每次取出一个就拿出来找下一个最大值再丢进去 那么就是要求区间第kk大,主席树就好了 因为数组开小了和没开longlong,WA无数遍 我太菜了太菜了太菜了 # include # define IL inline # define RG register # define Fill(原创 2018-01-23 10:28:09 · 192 阅读 · 0 评论 -
动态点分治:Bzoj1095: [ZJOI2007]Hide 捉迷藏
简介 这是我自己的一点理解,可能写的不好 点分治都学过吧。。 点分治每次找重心把树重新按重心的深度重建成了一棵新的树,称为分治树 这个树最多有log层。。。 动态点分治:记录下每个重心的上一层重心,这棵分治树就确定了 修改就暴力在分治树中向上改,反正是log的 至于为什么叫动态点分治我不知道。。。我觉得就是点分治 做题时最主要的难点不在点分治,在于维护什么和怎样维护 例原创 2018-01-12 17:19:34 · 515 阅读 · 0 评论 -
Bzoj4016: [FJOI2014]最短路径树问题
题面 传送门 Sol 先SPFASPFASPFA求出单源最短路,BfsBfsBfs建出树,字典序可以用堆解决 然后就是点分治的一眼题 开桶记录到当前根经过边长度相同的最长路,记录它的长度 自己强行yyyyyy了一个这种类型的点分丑陋写法 # include <bits/stdc++.h> # define RG register # define IL inl...原创 2018-02-26 14:54:48 · 358 阅读 · 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 · 359 阅读 · 0 评论 -
Bzoj4520: [Cqoi2016]K远点对
题面 Bzoj Sol 维护一个小根堆,初始里面放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 · 187 阅读 · 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 · 316 阅读 · 0 评论