贪心
cervoliu
这个作者很懒,什么都没留下…
展开
-
【AGC 049C】Robots
对于B[i]>=A[i]的robot,称其为dangerous的若无dangerous的robot,则答案为0我们有两种方法消灭一个dangerous,一,把它变成safe,二,用另一个踩死它对于一个dangerous的robot,显然消灭该robot的代价最多为1(花费至多1的代价踩死他)找出safe能覆盖的极长的区间,在safe区间内的dangerous显然可以被消灭掉。…考虑只用第二种方法消灭dangerous,那么答案等于没有被safe区间覆盖到的dangerous个数考虑用第一原创 2020-11-22 07:52:03 · 254 阅读 · 0 评论 -
【HNOI2013】游走
Description一个无向连通图,顶点从1 编号到N,边从1 编号到M。小Z 在该图上进行随机游走,初始时小Z 在1 号顶点,每一步小Z 以相等的概率随机选择当前顶点的某条边,沿着这条边走到下一个顶点,获得等于这条边的编号的分数。当小Z到达N 号顶点时游走结束,总分为所有获得的分数之和。现在,请你对这M 条边进行编号,使得小Z 获得的总分的期望值最小。100%的数据满足2≤N≤500且是一个无向原创 2017-04-19 20:04:45 · 735 阅读 · 0 评论 -
【JZOJ 4446】B
Description给定n个数,每次可以选择两个数a,b,将其中一个变为a and b,另一个变为a or b 最大化所有数的平方和 n<=10^5,maxnum<2^20Analysis注意:a and b+a or b=a+b(相当于二进制位上1的移动) 所以无论怎么操作,总和一定,且数差的越大越优 统计每个二进制位上1的个数就能贪心组数了 O(nlogmaxnum)原创 2017-07-15 14:38:19 · 292 阅读 · 0 评论 -
[JZOJ4940]前鬼后鬼的守护/[JZOJ4623]搬运干草捆
神题力荐! 详解戳这里(Author:a_crazy_czy) 转载是因为自己写不出这么高质量的blog,又必须Mark下来 同时也贴上另一种解法 Author: YxuanwKeith转载 2017-07-16 11:43:42 · 454 阅读 · 0 评论 -
【JZOJ 3773】 小 P 的烦恼
Description问题是这样的,高代老师近期要组织班上同学一起去漂流,漂流可以看做是在一张 n 个点 m 条边的有向无环图上进行的,点编号从 0 到 n-1 ,表示景点; 边是连接各景点的一定长度的河道。同时,定义编号为 s 是起点而 t 是终点。我们不妨把从 s 点到 t 点不论走什么样的路径都需要经过的边称为桥, 这些桥由于地势险要所以是危险的。现在高代老师有两条长度为 l 的安全绳,他希望原创 2017-08-08 17:04:52 · 300 阅读 · 0 评论 -
【JZOJ 5241】苹果和雪梨
Description作为新开的水果连锁店店员,你需要把总部发给你的苹果和雪梨分组出售,从而获得最 大利润。 总部发给你的水果包括: n 个苹果,质量分别为a1,a2…an n 个雪梨,质量分别为b1,b2…bn。 你卖的是盒装水果,一盒水果包括一个苹果和一个雪梨,苹果的质量乘上雪梨的质量就 是这盒水果的价钱。把苹果雪梨配对分成总共n 盒水果后,你要把价格最高的一盒返还给转载 2017-08-09 17:03:32 · 350 阅读 · 0 评论 -
【typical】【JZOJ 5271】 神奇的救火现场
Description Analysis比较容易想到的是可撤销贪心的解法,老套路了 可能我脑回路清奇,或者是中了这题的毒,想的是另一个nlogn的做法,和那个链接的题的分析思路差不多 首先可以想到一个很simple的dp,排好序,从左到右,设f[i][j]f[i][j]表示第i个车匹配第j个栓的最小花费 显然存在一种最优解使得匹配不交叉,那么此处存在状态转移的单调右移性 f[i][j]=m原创 2017-08-15 12:58:27 · 343 阅读 · 0 评论 -
【Typical-Greedy】【JZOJ 5400】 Repulsed
Description给定n个节点的树,需要在一些节点放置任意数量的半径为k的灭火器(能够覆盖距离不超过k的点),使得任意节点都被至少一个灭火器覆盖到 每个灭火器最多覆盖s个点 最小化放置的灭火器数量 对于100% 的数据满足n <= 10^5, k <= 20, s <= 10^9。Greedy从下往上比较好做 有一个正确的思路:对于当前未覆盖的最深节点x,覆盖它的灭火器放置越浅越好,设放原创 2017-10-07 19:19:59 · 518 阅读 · 0 评论 -
【Typical】【JZOJ 5378】 闷声刷大题
Description给两个长度为N的序列A,B 要求形成k个A与B的匹配 A[i]A[i]匹配B[j]B[j]条件为i<=ji<=j 代价为A[i]+B[j]A[i]+B[j] A,B中每个元素至多匹配一次 最小化k个匹配的代价和 N<=15000,A[I],B[I]<=10^9凸优化首先sb dp是kn^2的,f[k][x][y]表示形成K个匹配A到x B到y 的方案数 这时原创 2017-10-02 15:34:04 · 375 阅读 · 0 评论 -
【JZOJ 5432】 三元组
Description有X+Y+Z个三元组(x[i],y[i],z[i]),请你从每个三元组中挑数,并满足以下条件: 1、每个三元组中可以且仅可以选择一个数(即x[i],y[i],z[i]中的一个) 2、选择x[i]的三元组个数恰好为X 3、选择y[i]的三元组个数恰好为Y 4、选择z[i]的三元组个数恰好为Z问选出的数的和最大是多少 问选出的数的和最大是多少 对于100%的数据满足,1原创 2017-10-29 22:50:13 · 685 阅读 · 0 评论 -
可撤销贪心 小专题
Warming up【JZOJ 4726】 种花Description圆环上有N个数,要选出两两不相邻的M个数,使得M个数权值和最大 M<=N<=200000Analysis把N个数丢进大根堆里,用链表维护左右位置,每次取堆顶? 这样明显有问题,有可能取堆顶非最优。 对于一个位置x,定义其左边位置为lx,右为rx 如果x不选,那么lx,rx都必定会选 所以如果我们要撤销x出的选择,就把-a原创 2017-10-21 22:23:55 · 385 阅读 · 0 评论 -
【JZOJ 5352】 计数题
Description N<=10^5,0<=ai<2^30Analysis看到异或考虑拆位 从高位往低位做,将第i位为0的点扔进集合S,为1的点扔进集合T 那么最优情况下,肯定是S, T分别连成树,然后S到T只连一条边 这样就转化成了 ①子问题:S,T的最优方案,可以分治处理 ②S到T连一条边权最小的边。这个可以用Trie实现 显然最多走log层,每层做的总数是nlogn次,所以复杂原创 2017-10-24 21:47:50 · 238 阅读 · 0 评论 -
【AGC 009D】Uninity
Description给定一棵树,求在树上随机点分治所有可能情况中,树可能的最小的深度是多少? N<=10^5Analysis首先答案不超过log,因为直接点分治就是log 对于每个点定一个标号,表示点分树上它的子树的深度。 那么任意一种合法的标号,都可以对应一种策略的点分治 怎样的标号是合法的呢?对于两个标号相同的点,它们路径上必须要存在一个标号比它们大的点,若存在我们...原创 2018-03-02 18:50:56 · 280 阅读 · 0 评论 -
【TJOI2014】Alice and Bob
Description 数据保证a可以由至少一个n的排列得到 对于100%的数据,N<=10^5Analysis尝试构造出最优的序列x,若构造出来就直接计算 考虑当前输入的a[i],显然它要由某个a[i]-1转移而来 所以满足存在一个j,a[j]=a[i]-1 ( j < i ),有x[j]< x[i] 我们目标是使B数组,前面的尽量大过后面的 那么如果a[j]=a[i] (j < i)原创 2017-04-02 17:13:30 · 872 阅读 · 0 评论 -
【JZOJ 3873】 乐曲创作
Description给出1~N的一个排列,求出一个排列使得其逆序对数等于原排列的逆序对数,且字典序比满足原序列大之下,使字典序尽量小 100%的数据,1≤N≤500000。Analysis这就是一道大构造+贪心1.找出第一个需要改变的位置pos该位置(设为pos)需要满足两个约束条件其右边有比他大的数其右边比他小的数的个数设为b,序列[pos+1,n]的逆序对数为a,则b+1<=a尽量靠右原创 2017-01-19 21:54:39 · 503 阅读 · 0 评论 -
【JZOJ 4622】 亚瑟王之宫
Description 100%R,C≤20,N≤200100\%R,C\leq 20,N\leq 200 R,CR,C为棋盘大小,NN为骑士数。Analysis我还真是中了网络流的毒啊啊啊啊啊啊 限制条件做多了,中毒了 显然的思路是预处理所有点到棋盘上任意位置的最小移动次数。 然后呢?怎么办? 本蒟蒻乱搞,搞出了一个神奇的费用流,开心滴码,愉快滴调不出来。。。 没办法,正要放弃,发现原创 2016-07-13 16:28:16 · 488 阅读 · 0 评论 -
【JZOJ 4710】 Value
Description Analysis一开始dp想偏了,改了还是错的。。 好吧dp水平不够 认了。。。 首先,价值其实就是∑vi−∑(i−1)∗wi\sum v_i-\sum(i-1)*w_i 显然应该是先选代价小的更优。 尝试dp,设f[i][j]f[i][j]表示前ii个数中选了jj个的最大价值。f[i][j]=max(f[i−1][j],f[i−1][j−1]+???)f[i][原创 2016-08-17 20:42:00 · 298 阅读 · 0 评论 -
【JZOJ 4678】钱仓
Description n≤100000n\leq100000 PS:题目好坑,描述不清 题意的目标:使得所有位置都为1.Analysis首先把环破坏成链。 枚举断开位置,然后贪心地运钱。 什么样的贪心策略是对的呢? 可以通过手算或者直接证明(x2+y2≤(x+y)2x^2+y^2\leq (x+y)^2)发现,一个位置上若有0肯定用其左边的第一个非0的位置搬过来。如果搬过来那个位置变成原创 2016-08-11 20:51:03 · 575 阅读 · 0 评论 -
【JZOJ 3052】 剪草
Description有N棵小草,编号0至N-1。奶牛Bessie不喜欢小草,所以Bessie要用剪刀剪草,目标是使得这N棵小草的高度总和不超过H。在第0时刻,第i棵小草的高度是h[i],接下来的每个整数时刻,会依次发生如下三个步骤:(1)每棵小草都长高了,第i棵小草长高的高度是grow[i]。 (2)Bessie选择其中一棵小草并把它剪平,这棵小草高度变为0。注意:这棵小草并没有死掉,它下一秒还会原创 2016-09-05 12:47:15 · 440 阅读 · 0 评论 -
【BestCoder Round #59 div.1 B】【JZOJ 4693】 疯狂的火神
Description火神为了检验zone的力量,他决定单挑n个人。 由于火神训练时间有限,最多只有t分钟,所以他可以选择一部分人来单挑,由于有丽子的帮助,他得到了每个人特定的价值,每个人的价值由一个三元组(a,b,c)组成,表示如果火神在第x分钟单挑这个人(x指单挑完这个人的时间),他就会得到a-b*x的经验值,并且他需要c分钟来打倒这个人。 现在火神想知道,他最多可以得到多少经验值,由于火神原创 2016-08-14 14:39:41 · 385 阅读 · 0 评论 -
【JZOJ 4788】 序列
Description Analysis首先求出每个位置的目标移动次数(mod 4) 比赛时想到了很好的思路,因为时间不够没有继续想下去。 后来我和xhm沿着这个想法,并最终想到了正解,同时也是samjia2000大神的方法。 首先对序列做差分,a[i]-=a[i+1] 不考虑升高4,答案为∑max(0,a[i]−a[i−1])\sum max(0,a[i]-a[i-1]) 一次升高操作原创 2016-09-19 12:34:42 · 518 阅读 · 0 评论 -
【UOJ #244】【UER #7 A】短路
Description“第七套广播体操,原地踏步——走!”众所周知,跳蚤们最喜欢每天早起做早操,经常天还没亮就齐刷刷地站在操场做着反复纵跳热热身。跳晚国在研制三星 note7 的时候注意到了这点,于是他们打算让炸弹更快地引爆,这样就可以消灭更多早起的跳蚤。三星 note7 的主板可以看作是由 (2n+1)×(2n+1)(2n+1)×(2n+1) 个中继器构成的,某些中继器会有导线连在一起,左上角和右原创 2016-10-24 20:56:43 · 438 阅读 · 0 评论 -
【JZOJ 4809】【NOIP2016提高组 五校联考1】挖金矿
Description Analysis这道题很容易误入歧途:以为每列取平均最大的就是全局最大的。 我这个小doby就掉坑里了。 反例数据: 2 5 1 9 1 1 1 1 1 1 2 1 最优:每列只取一个;贪心:第一列全部取完了。 比赛时后来就方方方,毫无思路。。。 正解二分答案。 以后记住一点:毫无思路的题想想能不能二分转化为判定性问题。 二分答案,如果当前答案可行原创 2016-10-04 22:45:44 · 431 阅读 · 0 评论 -
【JZOJ 4811】【NOIP2016提高组 五校联考1】排队
Description Analysis首先可以知道,每个房间的优先级是一定的。 所以可以一遍dfs求出每个点的优先级。 考虑你要每次找出一个优先级最高的没人的点,同时还要支持让一个有人的房间重新变成没人的房间。你想到了什么? 没错,就是堆。 第二问显然可以倍增一下,整个过程用堆维护。Code#include<cstdio>#include<vector>#include<cmath>原创 2016-10-05 19:33:07 · 579 阅读 · 0 评论 -
【JSOI2015】【JZOJ 4064】套娃
Description Analysis显然对于Bi大的填越满越好 所以排个序 所以用一棵权值线段树记录一下选哪一个 这样贪心显然是对的Code#include<cstdio>#include<algorithm>#define fo(i,a,b) for(int i=a;i<=b;i++)using namespace std;typedef long long ll;const原创 2017-02-16 12:53:43 · 674 阅读 · 0 评论 -
【JZOJ 4984】 太空飞船
Description Analysis这个数据范围很显然的要分段程序K=2两段越平均越好,直接O(n)扫一遍即可K=3三段越平均越好,我们枚举其中一个等分点,调整另一个等分点(这个可以通过指针移动或二分来实现)。然后我们就有了两个等分点。但是这两个等分点的答案不一定是最优的。所以左边的等分点可能向右移一格。这会造成什么后果呢?右边的等分点会向右移动若干格。这个可以二分搞一波,然后整个过程就是O(原创 2017-02-27 19:56:38 · 737 阅读 · 0 评论 -
【JZOJ 3693】 慎二的随机数列
Description间桐慎二是间桐家著名的废柴,有一天,他在学校随机了一组随机数列,准备使用他那强大的人工智能求出其最长上升子序列,但是天有不测风云,人有旦夕祸福,柳洞一成路过时把间桐慎二的水杯打翻了……现在给你一个长度为n 的整数序列,其中有一些数已经模糊不清了,现在请你任意确定这些整数的值,使得最长上升子序列最长(为何最长呢?因为间桐慎二向来对自己的人品很有信心)。 对于100%的数据,n原创 2017-02-09 19:36:35 · 491 阅读 · 0 评论 -
JZOJ 4376【GDOI2016模拟3.9】染色配对
特殊图匹配Analysis由于题目的特性,我们把极大团看成点,把点看成边。 然后会形成多个连通块。 对于每个连通块,若其中有mm条边,则一定能匹配⌊m2⌋\lfloor\dfrac{m}{2}\rfloor次。因为一次匹配要两条边。 所以第一行直接算出每个连通块内的边数就好了。 关键是要找到一个可行的算法来达到最优匹配。 然后我们可以发现,目标等价于最大化入度为偶数的点原创 2016-04-15 19:28:29 · 560 阅读 · 0 评论