贪心
LOI_pingxing
这个作者很懒,什么都没留下…
展开
-
[codevs1615]数据备份
题目←大意: 可以转换成n条线段中选k条端点不重合的线段,要求线段之和最小 发现一条线段选了之后会影响两边的,考虑链表 还有这样一条替代关系: 选择一条长度为v的线段后,两旁的线段不能再选,但若要重选两条线段,可将答案增加lv+rv-v来抵消 其中lv、rv为左右线段的价值综上,选择一条价值为v的线段时,在链表空间中新加入lv+rv-v,代替v的位置 然后继续从小到大贪心就可以了原创 2017-10-17 18:42:29 · 268 阅读 · 0 评论 -
[对内测试Day10.16]贪心+读入+DP+小学数学
T1codevs2913建筑抢修大意见链接。先说自己在考场上的思路: 每个任务有结束时间的限制,这点特性很像codevs1052地鼠游戏 然后选择了将时间从后向前枚举,将当前时间所有可选择的任务丢进堆中,每次选择需要时间最小的一定最优(剩余给前面的时间更长) 对于当前可选择的最小任务时间如果无法再下一个时间点(实际的前一个的时间点)完成的话 将该任务进行的时间 -= 已进行的时间,重新扔进堆原创 2017-10-16 20:46:35 · 312 阅读 · 0 评论 -
[洛谷P1658]购物
题目←因为看方法大概跟题解里的不太一样,就另写了个题解丢上去了 这里就不再写了……#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;int x,n,v[10010],cnt;int dp[10010],ans = 10010;bool exist[1001原创 2017-10-31 11:02:16 · 579 阅读 · 0 评论 -
[codevs1046]旅行家的预算
题目←瞎贪心…… 记录当前为止最便宜的加油站minx 因为每一站油量最多为C,所以在当前站没加满的情况下,每走到一条新路优先加单价最小的加油站 要是加满的话,直接跳到目前的加油站 加满了油还走不到下一站就是非法情况了……(废话)#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using nam原创 2017-10-22 18:28:19 · 327 阅读 · 0 评论 -
[队内测试Day10.12]贪心+状压+分块+树状数组
一道很神的贪心很水的DP以及很好玩的数据结构原创 2017-10-12 18:32:13 · 280 阅读 · 0 评论 -
[codevs2913]建筑抢修
惊喜的发现这道题是可以用不同的贪心策略来解的。1、按结束时间从大到小枚举 这是考场思路。我们知道时间越向后,可选择的任务就越少。在可选范围内选需要时间更少的,这样剩给前面的时间更多 当前推到其他任务的结束时间时,表示有了新的可选任务。这时我们当前做的任务就不一定是最优(需要时间最少)的了,但在后一段时间内它确实是最优目标,所以我们已经实实在在的做了它一段时间,怎么办呢? 处理方法是将任务需要时间 -= 已经原创 2017-10-20 14:40:43 · 262 阅读 · 0 评论 -
[题目总结·贪心]
poj 3190 挤奶预订大意: 给出一些线段,求最少分组使线段互不重叠,并求出每条线段所在组的编号思路: 跟线段覆盖是不一样的,一开始想错了 对于每条线段,无论放在哪里,末尾对后面线段的影响是一定的 本着消耗空间最小的原则,将线段放在末端点离它的始端点最近的线段后面 就是让两条线段始末位置间的距离尽量小 故将线段按始端点排序,丢进以末端点为关键字的优先队列中 每放一条线段时,将堆顶末原创 2017-10-17 18:24:26 · 288 阅读 · 0 评论 -
[codevs1052]地鼠游戏
一道优先队列可解决的题目。应该算是模拟?原创 2017-03-29 19:48:39 · 548 阅读 · 0 评论 -
[codevs2625]雷达安装
题目←一直是wa,后来看了题解才发现少考虑了一种情况 一直把最右端的圆的右边界记录为边界值,后来的圆左端点大于它就更新 然而存在一种状况,当某圆左端点在上一圆右端,右端点仍在上一圆左端 此时若边界仍为上一圆右端,则可能存在新加入的圆与前一圆并无交点,但答案不更新的情况。 所以需要node[i].r < last时,更新last值以缩小范围#include<iostream>#include原创 2017-10-19 07:49:36 · 290 阅读 · 0 评论 -
[洛谷P1315]观光公交
题目←模拟+贪心 一开始看到10^5的数据,以为要klogn就敲了个线段树上去 结果没考虑后效性,只过了3个点 正解: 一开始先处理出每一站的到站时间是对的,而随着修改到站时间的改变不一定满足前缀关系 假设在某一站有人很晚才出发,那不管先前改变了多少后面的到站时间都是不变的 综上 还需要维护修改一段距离时最远能影响到的点(递推标签的由来) 设i修改i后的线段最远影响到的点为G[i]原创 2017-11-03 21:15:32 · 371 阅读 · 0 评论