贪心算法
WorldWide_D
这个作者很懒,什么都没留下…
展开
-
[Scoi2016]背单词
做的时候题意理解错了,然后爆0。。题目大意给你n个两两不同字符串,把它们按任意顺序排列。对于排列中的第i个字符串: 1. 如果存在一个字符串是它的后缀,并且不在它前面,那么费用增加n*n 2. 如果它的前面不存在一个是它的后缀,那么费用增加i 3. 如果前面存在一个是它的后缀,那么费用增加i-j(j是前面所有它的后缀中,最后的位置)数据范围n≤100000 字符串总长≤510000分析后缀比原创 2016-07-15 18:33:53 · 742 阅读 · 0 评论 -
【NOIP2016提高A组集训第16场11.15】兔子
题目大意在一片草原上有N个兔子窝,每个窝里住着一只兔子,有M条路径连接这些窝。更特殊地是,至多只有一个兔子窝有3条或更多的路径与它相连,其它的兔子窝只有1条或2条路径与其相连。换句话讲,这些兔子窝之前的路径构成一张N个点、M条边的无向连通图,而度数大于2的点至多有1个。 兔子们决定把其中K个兔子窝扩建成临时避难所。当危险来临时,每只兔子均会同时前往距离它最近的避难所躲避,路程中花费的时间在数值上等原创 2016-11-15 15:41:43 · 687 阅读 · 0 评论 -
[bzoj3246] [Ioi2013]Dreaming
题目大意给定n个点m条边的森林,每条边有边权。要求用长度为L的边把它连成一棵树,且直径最小。n≤500000分析首先对于森林中每一棵树,它只有一条路径可能会对答案有贡献。为了使答案尽量小,那就要使这个值尽量小。那么可以选择它的所有点中,到达其它点距离最大值最小的,去和其它树连接。然后这个点对答案的贡献就是这个距离。那么会发现,这些数看成一个点之后,又会连成一棵树。 由于这棵树的形态是任意的,肯定是原创 2017-04-06 08:21:31 · 1191 阅读 · 2 评论 -
神奇的救火现场
题目大意在一维数轴上有p个水栓和f辆救护车。现在要为每个救护车匹配一个水栓,使得距离和最小。一个水栓最多只能被一辆救护车匹配。f≤p≤100000分析救护车匹配水栓可以分成两种方向。 在最优方案中有以下性质: 两种方向的两个匹配只有相离的关系 同向的两个匹配可以通过不影响答案的调整使得两两关系为相离或包含 被匹配的物品必然是连续的一段然后就可以按它们在数轴上的位置从小到大枚举。分两种情况:原创 2017-08-14 21:08:34 · 458 阅读 · 0 评论 -
[bzoj4977]跳伞求生
题目大意有n个队友和m个敌人,每个队友有一个攻击力ai,每个敌人有攻击力bi和价值ci。你可以选择若干个队友,每个队友i去怼一个敌人j(i,j两两不同),当ai>bj时,你的队友可以对答案造成ai-bj+cj的贡献。问答案最大可以是多少。n,m≤100000分析我首先往贪心方面想。 考虑把队友按a升序排序,敌人按b升序排序。然后枚举攻击力,开一个优先队列维护可以怼的敌人的c-b。然后对于一个对友,原创 2017-08-24 22:31:09 · 1398 阅读 · 0 评论 -
[codeforces850D]Tournament Construction
题目大意给定m个数的一个非负整数集合,不超过30。你需要构造一个竞赛图,满足:所有点的出度去重后等于该集合。 m≤31分析做这题需要用到兰道定理(Landau’s Theorem)。 设点i的出度为d[i],那么对于任意1≤i≤n1≤i≤n,有∑ij=1d[i]≥i(i−1)2\sum_{j=1}^{i}d[i]≥\frac{i(i-1)}{2}。且当i=n时是等于。 那么可以考虑构造一个合法原创 2017-10-14 12:51:44 · 589 阅读 · 0 评论 -
[arc076F]Exhausted?
题目大意有m个椅子,第i个在位置i,每个椅子只能坐一个人。 有n个人,第i个人能坐的椅子的位置j需满足j≤Li或j≥Ri。 现在你可以添加若干个椅子,可以放在任意实数位置。问最少加多少个n,m≤200000分析题目就是问你最多坐多少个人… 首先考虑只有L或R的限制。以只有L为例,可以按位置从小到大枚举椅子,在Li处决定i坐在哪。很显然的贪心是:枚举每往后一个椅子就多一个位置放人,然后已知Lj=原创 2017-11-04 21:33:06 · 779 阅读 · 0 评论