随笔分类 -  数据结构 - 优先队列

摘要:二分最大值,然后考虑如何处理. 正着做很难,因为每次减掉 $p$ 后还要与 0 取 max,但是倒着做就会容易很多. 先将所有数的高度都置为 $mid$,那么就有两种操作: 1. -a[i] 2. +p 显然每次减掉 $a[i]$ 后不可以小于 0,因为如果减掉 $a[i]$ 后小于 0 的话意味着 阅读全文
posted @ 2020-07-14 14:23 EM-LGH 阅读(147) 评论(0) 推荐(0)
摘要:直接算不好算,考虑拆开系数来算贡献. 对于 $b_{i}w_{i}$,可以看成 $1$ ~ $i$ 中每走一步就会产生 $w_{i}$ 的贡献,也就说 $i$ 的贡献就是 $i$ 的后缀和. 那么问题可以转化为: 有 $n$ 个元素,每个元素可以选 $[-k,k]$ 个,且第 $i$ 时刻选的元素个 阅读全文
posted @ 2020-07-05 08:05 EM-LGH 阅读(197) 评论(0) 推荐(0)
摘要:由于只有取 max 标记,所以直接在线段树上维护就行. 然后取前 k 大的话就用一个堆来维护四元组 $(l,r,v,pos)$ 表示区间 $[l,r]$ 的最小值为 $v$ ,位置为 pos. 查询的时候按照 $v$ 递增的顺序取出堆顶,然后按照 pos 分裂,再扔回堆里就行了. code: #in 阅读全文
posted @ 2020-06-22 10:41 EM-LGH 阅读(193) 评论(0) 推荐(0)
摘要:自己想出来的,还是相当开心的(说实话这题也不难 QAQ......) 首先,那个时间限制非常好处理:离线然后拆成插入和删除就行. 对于每一种元素的每一个位置维护一个 $pre_{i}$ 表示上一次出现的位置. 假设我们查询的位置是 $pos$,我们二分答案 $mid$. 如果 $mid$ 合法,就要 阅读全文
posted @ 2020-06-02 16:50 EM-LGH 阅读(196) 评论(0) 推荐(0)
摘要:貌似是套路题. 假设给定我们一些区间,那么这些区间交集的左端点是左端点最靠右区间的左端点. 所以我们将所有区间按照左端点从小到大排序,然后用堆维护前 k 大的右端点. 那么,对于枚举到的第 $i$ 个区间来说,右端点就是第 $k$ 大的右端点与当前区间右端点的较小值. code: #include 阅读全文
posted @ 2019-12-28 16:51 EM-LGH 阅读(123) 评论(0) 推荐(0)
摘要:和超级钢琴,异或之三倍经验 $?$ 堆+贪心素质三连 $?$ 好无聊...... code: #include <bits/stdc++.h> #define N 500006 #define ll long long #define setIO(s) freopen(s".in","r",stdi 阅读全文
posted @ 2019-11-26 20:46 EM-LGH 阅读(171) 评论(0) 推荐(0)
摘要:和超级钢琴几乎是同一道题吧... code: #include <bits/stdc++.h> #define N 200006 #define ll long long #define setIO(s) freopen(s".in","r",stdin) , freopen(s".out","w" 阅读全文
posted @ 2019-11-26 20:15 EM-LGH 阅读(135) 评论(0) 推荐(0)
摘要:写了7k多,可以说是一己之力切掉了这道毒瘤题~ 开 $3$ 种堆,分别维护每个子树最大深度,以及每个节点在点分树中对父亲的贡献,和全局的最优解. 由于需要支持堆的删除,所以写起来特别恶心+麻烦. 细节巨多~ 阅读全文
posted @ 2019-09-03 18:36 EM-LGH 阅读(172) 评论(0) 推荐(0)
摘要:好像是模拟费用流 Code: 阅读全文
posted @ 2019-07-25 14:30 EM-LGH 阅读(145) 评论(0) 推荐(0)
摘要:Description 已知平面内 N 个点的坐标,求欧氏距离下的第 K 远点对。 已知平面内 N 个点的坐标,求欧氏距离下的第 K 远点对。 Input 输入文件第一行为用空格隔开的两个整数 N, K。接下来 N 行,每行两个整数 X,Y,表示一个点 的坐标。1 < = N < = 100000, 阅读全文
posted @ 2019-06-20 16:22 EM-LGH 阅读(221) 评论(0) 推荐(0)
摘要:Description 每天,农夫John需要经过一些道路去检查牛棚N里面的牛. 农场上有M(1<=M<=50,000)条双向泥土道路,编号为1..M. 道路i连接牛棚P1_i和P2_i (1 <= P1_i <= N; 1 <= P2_i<= N). John需要T_i (1 <= T_i <= 阅读全文
posted @ 2019-06-05 10:25 EM-LGH 阅读(141) 评论(0) 推荐(0)
摘要:Description Farmer John想修理牧场栅栏的某些小段。为此,他需要N(1<=N<=20,000)块特定长度的木板,第i块木板的长度为Li(1<=Li<=50,000)。然后,FJ去买了一块很长的木板,它的长度正好等于所有需要的木板的长度和。接下来的工作,当然是把它锯成需要的长度。F 阅读全文
posted @ 2019-06-05 09:50 EM-LGH 阅读(195) 评论(0) 推荐(0)
摘要:Description Farmer John想修理牧场栅栏的某些小段。为此,他需要N(1<=N<=20,000)块特定长度的木板,第i块木板的长度为Li(1<=Li<=50,000)。然后,FJ去买了一块很长的木板,它的长度正好等于所有需要的木板的长度和。接下来的工作,当然是把它锯成需要的长度。F 阅读全文
posted @ 2019-06-05 09:16 EM-LGH 阅读(152) 评论(0) 推荐(0)
摘要:Description 你在一家 IT 公司为大型写字楼或办公楼(offices)的计算机数据做备份。然而数据备份的工作是枯燥乏味 的,因此你想设计一个系统让不同的办公楼彼此之间互相备份,而你则坐在家中尽享计算机游戏的乐趣。已知办公 楼都位于同一条街上。你决定给这些办公楼配对(两个一组)。每一对办公 阅读全文
posted @ 2019-05-22 10:28 EM-LGH 阅读(174) 评论(0) 推荐(0)
摘要:思维难度不大,在考上上写的启发式合并写错了,只拿了 60 pts,好难过QAQ 没什么太难的,在考场上想出链的部分分之后很容易就能想到正解.没错,就是非常短的启发式合并.注意一下,写的要漂亮一点,否则会疯狂 TLE.还有一个细节,想交换优先队列时不能直接交换队列,而是对于树中每个节点都存一个在实际队 阅读全文
posted @ 2019-04-08 19:50 EM-LGH 阅读(167) 评论(0) 推荐(0)
摘要:Code: 阅读全文
posted @ 2018-11-06 18:15 EM-LGH 阅读(136) 评论(0) 推荐(0)