UVA-1617 Laptop (贪心)】的更多相关文章

题意:有n个长度为1的线段,确定它们的起点,使得第i个线段在[ri,di]之间,输出空隙数目的最小值. 析:很明显的贪心题,贪心策略是这样的,先把所有的区间排序,原则是按右端点进行排序,如果相等再按左端点排,然后再扫一遍,如果第一个区间的右端点和第二个右端点一样, 一定可以相邻,如果不相等,再看是不是与左端点大小关系,如果小于左端点,那么就一定会产生空隙,如果不是小于,就可以,那么端点要向右移动一个单位,其他的也样判断. 代码如下: #include <cstdio> #include <…
题意: 有n条长度为1的线段,确定他们的起点,必须是整数,使得第i条线段在[ri,di]之间.最后输出空隙的最小值 分析: 原始数据排序,排序的规则是先按照右端点排序,右端点相同的情况下,再按照左端点排序.然后最左边开始遍历线段,判断第一个右端点是否小于第二个左端点,如果小于,则中间肯定有空隙,标记加1. 代码: #include <iostream>#include <cstdio>#include <cstring>#include <algorithm>…
先排序, 然后每个线段先放右端点, 然后往下放, 如果不能放就整体往左移动, 当不能往左移动的时候就ans++ 开始下一个整块.判断能不能向左移动要用一个变量储存每个已经放了的区间中线段与左端点距离的最小值. #include<cstdio> #include<algorithm> #define REP(i, a, b) for(int i = (a); i < (b); i++) using namespace std; const int MAXN = 112345;…
题意:有N条长度为1的线段,要求使每条线段分别在相应区间,且"空隙"数目最小.输出"空隙"数.(1≤N≤100000) 解法:(P.S.我这题竟做了2个多小时,还是有点迷糊......ヽ(≧□≦)ノ)先按右端点从小到大排序,再是左端点.于是有2个理解:1. 扫一遍,r保存之前的线段的右端点的最大值,分情况讨论:2. (这个我理解了差不多1个小时......qwq 于是我好不容易理解了之后,再进行了一些小修改.)l , r 表示之前线段左.右端点的范围.再分别看没有&…
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 贪心. 把所有的区间按照右端点为第一关键字,左端点为第二关键字升序排. 然后令now = a[i].second. (now即当前的连续区间的最右端点 即第一个区间的右端点. 第一个点就应该放在这个地方. 然后对于第i+1个区间. 如果now==a[i+1].second 则把第i+1个点放在之前一连串的点的最左边的左边一个位置. 然后now保持不变 (保证有解的话,肯定是有空位置的,之前连续放的点不可能充满整个第i+1个区间的…
题目链接:uva 1346 - Songs 题目大意:John Doe 是一个著名的DJ,现在他有n首播放个曲, 每首歌曲有识别符key,歌曲长度l,以及播放频率q.想在John Doe 想将磁带上的歌曲重新排列,方便播放,播放所有歌曲有一个复杂度的计算∑(1≤i≤n)q[i] * ( ∑(1≤j≤i)l[j] ), 然后给出S,请输出重新排列后的第S首歌的识别码. 解题思路:为了使得复杂度越小,很明显的曲目长度小的要放前面,播放频率小的要放后面,所以每首歌增加一个k = l / q,即k越小的…
题意:有6种箱子,1x1 2x2 3x3 4x4 5x5 6x6,已知每种箱子的数量,要用6x6的箱子把全部箱子都装进去,问需要几个. 一开始以为能箱子套箱子,原来不是... 装箱规则:可以把箱子都看成正方体,装在6x6的盒子里. 典型的贪心题. 思路:(参考了Starginer大神的) ①每个6*6的都占一个箱子. ②每个5*5的放在一个箱子里,同时里面还能装11个1*1的. ③每个4*4的放在一个箱子里,同时里面还能装5个2*2的,如果2*2的不够了,那么还能放1*1的. ④每4个3*3的放…
思路:就是把J大的放在前面.为什么这样贪心呢? 看看这个图 #include<iostream> #include<algorithm> #include<vector> using namespace std; struct node{ int x, y; bool operator < (const node &b) const{ return y>a.y; } }; int n, t, x, y; int main(){ while(cin&g…
本来以为这道题是考不相交区间, 结果还专门复习了一遍前面写的, 然后发现这道题的区间是不是 固定的, 是在一个范围内"滑动的", 只要右端点不超过截止时间就ok. 然后我就先考虑有包含关系的时候怎么选, 然后发现当两个区间只能放一个的时候时间更短而截 至时间更长的时候,显然更优.然后我就试着每个区间放的时候后后面的比较, 如果两个区间只能放一个, 而且 下个区间更优, 那么当前的就不选.然后排除掉这些区间之后, 能选的就选. 交上去WA.然后我发现中间的区间排除了,但是前面和后面的区间…
这道题我很快就写出来了, 但是一直WA, 然后发现是精度, 这坑了我一个小时-- (1)贪心.每次就尽量分数高, 可以保证最后分数最高 (2)神tm精度问题.记住判断大于小于和等于的时候要用EPS(1e-6) a == b                  fabs(a-b) < EPS a != b                  fabs(a-b) > EPS a < b                   a + EPS < b a <= b             …