![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
优先队列
Neo__Z
这个作者很懒,什么都没留下…
展开
-
hdu1058 Humble Numbers【优先队列】
看起来不像数位dp。 考虑优先队列(最小堆),每次从取堆顶,再将这个数分别乘以2,乘以3,乘以5,乘以7压入队列中。 注意输出时序数的后缀(WA了三遍……)。#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<algorithm>#include<cmath>#include<queu原创 2017-10-18 15:24:54 · 255 阅读 · 0 评论 -
hdu4393 Throw nails【优先队列&&贪心&&模拟】
题目大意:给你n个人,他们在进行一场自行车竞速比赛,每个人在第1s时走Fi米,以后每秒走Si米,一个小孩在仍钉子破坏比赛,每秒他都选最靠前的那个人,如果有多个人,选编号最小的那个,问你这些人依次被破退出比赛的顺序。(1 <= n <= 50000)(0 <= Fi <= 500)(0 < Si <= 100)解题思路:开始时只看到1 <= n <= 50000,一直在想怎么用数据结构做。 后面发现原创 2017-11-01 16:10:55 · 889 阅读 · 0 评论 -
bzoj4504: K个串【主席树区间操作+优先队列】
Description兔子们在玩k个串的游戏。首先,它们拿出了一个长度为n的数字序列,选出其中的一 个连续子串,然后统计其子串中所有数字之和(注意这里重复出现的数字只被统计一次)。 兔子们想知道,在这个数字序列所有连续的子串中,按照以上方式统计其所有数字之和,第 k大的和是多少。Input第一行,两个整数n和k,分别表示长度为n的数字序列和想要统计的第k大的和 接下里一行n...原创 2018-02-28 16:19:22 · 472 阅读 · 0 评论 -
bzoj3784: 树上的路径【点分治+ST表+优先队列】
Description给定一个N个结点的树,结点用正整数1..N编号。每条边有一个正整数权值。用d(a,b)表示从结点a到结点b路边上经过边的权值。其中要求aInput第一行两个正整数N,M 下面N-1行,每行三个正整数a,b,c(a,b<=N,C<=10000)。表示结点a到结点b有一条权值为c的边。Output共M行,如题所述.Sample Inp...原创 2018-03-09 19:44:51 · 376 阅读 · 0 评论 -
bzoj2288: 【POJ Challenge】生日礼物【贪心+优先队列+链表】
Descriptionftiasch 18岁生日的时候,lqp18_31给她看了一个神奇的序列 A1, A2, …, AN. 她被允许选择不超过 M 个连续的部分作为自己的生日礼物。自然地,ftiasch想要知道选择元素之和的最大值。你能帮助她吗?Input第1行,两个整数 N (1 ≤ N ≤ 105) 和 M (0 ≤ M ≤ 105), 序列的长度和可以选择的部分。第...原创 2018-02-25 20:11:01 · 731 阅读 · 0 评论 -
BJ模拟 第k小和【贪心+优先队列】
题目描述:从n个数中选若干(至少1)个数求和,求所有方案中第k小的和(和相同但取法不同的视为不同方案)。n<=100000,k<=500000解题思路:考虑从下到大选数。 假设当前最小状态为(sum,i),表示和为sum,选的最大数为i,那么它会引出两个状态(sum-a[i]+a[i+1],i+1)或(sum+a[i+1],i+1),用堆维护即可。 这样可以覆盖所有情况...原创 2018-05-09 15:40:33 · 507 阅读 · 0 评论 -
hihoCoder Challenge 29 D. 不上升序列【动态规划+折线+堆】
题目大意:给出一个整数序列,可以花费1的代价把一个数+1或1,求把它变成不上升序列的最小代价。n&lt;=500000;令 fi(x)fi(x)f_i(x) 为前个数,调整出最大值不超过 xxx 的最小代价,那么 fifif_i 是一条不升的折线 考虑转移 fi(x)=miny≤xfi−1(y)+|ai−y|fi(x)=miny≤xfi−1(y)+|ai−y|f_i(x)=\te...原创 2018-05-18 08:39:42 · 236 阅读 · 0 评论 -
bzoj5289: [Hnoi2018]排列 排列【贪心+堆】
传送门解题思路:首先要看出题目要求的就是一棵树(有环无解),求一个顺序,父亲必须再儿子前选,选第i个点的价值是i*w[i],求最大价值和。 然后这确实是雅礼集训的原题。 先来考虑一个简单的情况:若v是u的儿子且是所有可选点中最小的。那么选了u之后下一个一定会选v。那么我们可以把u与v合并。 这个结论对于一个连通块也是对的,所以块与块之间也可以比较大小,且比较的是平均值。因为考虑连通...原创 2018-05-08 17:33:41 · 500 阅读 · 0 评论