随笔分类 -  算法--贪心

摘要:"传送门" 解题思路 首先肯定是先处理$b a$的,这样可以获得更多空间。处理时要先处理$a$比较小的,再处理$a$比较大的,因为要求最小值,而$b a$的总量是确定的,那么就让每步尽量小。后处理$b include include include include using namespace s 阅读全文
posted @ 2019-01-11 16:43 Monster_Qi 阅读(193) 评论(0) 推荐(0)
摘要:题面 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 136 Solved: 90 [Submit][Status][Discuss] Description The cross country skiing course at the winter 阅读全文
posted @ 2018-12-17 17:15 Monster_Qi 阅读(255) 评论(0) 推荐(0)
摘要:题面 Description 话说练习后缀数组时,小C 刷遍 poj 后缀数组题, 各类字符串题闻之丧胆。就在准备对敌方武将发出连环杀时,对方一记无中生有,又一招顺 手牵羊,小C 程序中的原字符数组就被牵走了。幸运的是,小C 早已经求出了 SA[],为了 能东山再起,迅速 A 掉此题,他希望各位忠臣 阅读全文
posted @ 2018-12-07 15:18 Monster_Qi 阅读(143) 评论(0) 推荐(0)
摘要:"传送门" 解题思路 贪心。对于一段区间中,可以将这段区间中相同的元素同时变成$c$,但要付出的代价是区间中等于$c$的数的个数,设$sum[i]$表示等于$c$数字的前缀和,Max[i]表示数字$i$的最大个数。那么只要$O(n)$的扫一遍,维护一下每个数字的$max$,具体做法是看一下$Max[ 阅读全文
posted @ 2018-12-04 17:27 Monster_Qi 阅读(184) 评论(0) 推荐(0)
摘要:题面 Description 农夫JOHN准备把他的 N(1 include include include include include using namespace std; const int MAXN = 10005; typedef long long LL; inline int r 阅读全文
posted @ 2018-12-03 15:39 Monster_Qi 阅读(238) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2018-11-18 12:24 Monster_Qi 阅读(92) 评论(0) 推荐(0)
摘要:"传送门" 解题思路 比较神的一道题。首先发现是最小值问题,并且具有单调性,所以要考虑二分答案。其次有一个性质是军队越靠上越优,所以我们要将所有的军队尽量向上提,这一过程我们用倍增实现。发现这时有两种军队,一种是到根之后可以继续移动,另一种不行。那么记录下来那些到根之后可以移动的点和可以继续移动的距 阅读全文
posted @ 2018-11-04 18:52 Monster_Qi 阅读(180) 评论(0) 推荐(0)
摘要:"传送门" 解题思路 首先我们要把加速器一个一个的用,用在什么地方呢。假设当前站车比人晚到,那么车上的人与等待的人都会受到影响;否则的话只有在当前站下车的人有影响。我们第一步先求出车到站的时间,对于一条路来说,如果人等车,那么在这条路用加速器的效果可以继续向后延伸。否则只会对下一站造成影响。这样的话 阅读全文
posted @ 2018-11-03 20:59 Monster_Qi 阅读(120) 评论(0) 推荐(0)
摘要:"传送门" 解题思路 对于第$i$周来说,最小的花费 $sum=min(y[i] (c[j]+s(i j)))(1 include include include include define int long long using namespace std; const int MAXN = 1 阅读全文
posted @ 2018-10-18 20:26 Monster_Qi 阅读(181) 评论(0) 推荐(0)
摘要:"传送门" 解题思路 用堆贪心,每次能走就走,不能走从大根堆里取出以前加进去的油量并更新答案。 代码 cpp include include include include include using namespace std; const int MAXN = 10005; inline int 阅读全文
posted @ 2018-10-18 20:06 Monster_Qi 阅读(92) 评论(0) 推荐(0)
摘要:"传送门" 解题思路 贪心,首先因为$n$比较小,可以$2^n$枚举子集。然后判断的时候就每次看后面的如果用最大生产力生产能不能达成目标,解一个二次函数。 代码 include include include include include define int long long using na 阅读全文
posted @ 2018-10-18 19:51 Monster_Qi 阅读(148) 评论(0) 推荐(0)
摘要:解题思路 明明一道比较简单的贪心结果挂了好几次23333,就是按照时间排序,然后拿一个小根堆维护放进去的,如果时间允许就入队并且记录答案。如果不允许就从堆里拿一个最小的比较。 #include<bits/stdc++.h> using namespace std; const int MAXN = 阅读全文
posted @ 2018-10-09 19:47 Monster_Qi 阅读(140) 评论(0) 推荐(0)
摘要:传送门 解题思路 和以前做的一道题比较像,贪心+dfs,首先用一个优先队列,将所有的叶节点存到优先队列里,每次找到一个深度最大的,向上扩展2*2+1个节点,这些点都打上标记,然后把向上第6个点的当做叶节点继续放入优先队列,直到所有点被遍历。时间复杂度O(nlogn)。 #include<iostre 阅读全文
posted @ 2018-09-20 19:40 Monster_Qi 阅读(151) 评论(2) 推荐(0)
摘要:传送门 解题思路 好多大佬用的dp啊,貌似贪心可以做,每次所选的一定是每个连续递增或递减序列的最后,直接模拟就行了,注意判断一下头和尾相等的情况。 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> us 阅读全文
posted @ 2018-09-20 15:27 Monster_Qi 阅读(132) 评论(0) 推荐(0)
摘要:传送门解题思路扫了一眼觉得是贪心+线段树,结果贪心的时候刚开始按区间长度排的序。。这还有82分,后来叉了自己,换成按右端点排序过了。代码#include#include#include#include#includeusing namespace std;c... 阅读全文
posted @ 2018-08-20 21:29 Monster_Qi 阅读(192) 评论(0) 推荐(0)
摘要:DescriptionX 城的商场中,有着琳琅满目的各种商品。一日,小X 带着小Y 前来购物,小Y 一共看中了n件商品,每一件商品价格为Pi。小X 现在手中共有m个单位的现金,以及k 张优惠券。小X 可以在购买某件商品时,使用至多一张优惠券,若如此做,该商品... 阅读全文
posted @ 2018-08-07 20:43 Monster_Qi 阅读(192) 评论(0) 推荐(0)
摘要:传送门解题思路刚开始先写了个田忌赛马的贪心,就是要是打不过就拿最弱的送死,30分。。。后来瞄了眼题解,发现这样是错的,比如说这样的数据 : 3 3 2 3 1 如果用田忌赛马的话,让2-3 3-1 ,这样只有两分,实际上应该是2-1 3-3 这样有3分 所以... 阅读全文
posted @ 2018-07-26 16:28 Monster_Qi 阅读(111) 评论(0) 推荐(0)
摘要:题面解题思路贪心,首先按右端点排序,然后从小往大扫,因为要求树最少,所以要尽量放在右端点。然后开个bool数组判断是否种过树即可。代码#include#include#include#includeusing namespace std;const int ... 阅读全文
posted @ 2018-07-22 16:05 Monster_Qi 阅读(222) 评论(0) 推荐(0)
摘要:Time Limit: 20 Sec Memory Limit: 128 MB Submit: 2027 Solved: 624 [Submit][Status][Discuss] Description 脸哥最近在玩一款神奇的游戏,这个游戏里有 n 件... 阅读全文
posted @ 2018-07-18 16:53 Monster_Qi 阅读(131) 评论(0) 推荐(0)
摘要:题面解题思路如果a数组全部>0,那么都不去即可。从这个角度出发,每次选出a[i]为0的,让它们去更新a数组,相当于拓补排序。代码#include#include#include#includeusing namespace std;const int MAX... 阅读全文
posted @ 2018-07-18 15:10 Monster_Qi 阅读(114) 评论(0) 推荐(0)