题意如下:
直线上有N个点,第i点的位置为Xi。从这N个点中选择若干个,给他们加行标记。对每一个点,其距离为R以内的区域里必须带有标记的点(自己本身带有标记的点,可以认为与其距离为0的地方有一个带有标记的点)。在满足这个条件的情况下,希望能为尽可能少的点添加标记。请问至少需要为多少个点添加上标记?...
分类:
其他好文 时间:
2015-02-09 14:13:43
阅读次数:
224
背景:因为一个小错误找了一个多小时,就是在输入数据的时候,雷达Q的作用范围可以为0.while(scanf("%d %d",&N,&Q)==2&&N)这句话千万不要写成while(scanf("%d %d",&N,&Q)==2&&N&&Q)
否则就会错。
思路:简单贪心,先要找出每个小岛可以被雷达发现的区间,然后就可以运用贪心算法了,先用sort按照区间左端点升序排列。然后如下运用贪心就可以了...
分类:
其他好文 时间:
2015-02-07 17:34:41
阅读次数:
133
题意:给定长度为N的字符串S,(字符串S全为大写字母组成)要构造一个长度也为N的字符串T。
起初,T是一个空串。随后反复进行下面任意操作:
1.从S的头部删除一个字符,然后加到T的尾部。
2.从S的尾部删除一个字符,然后加到T的尾部。
目的是要构成字典序尽可能小的字符串T。
思路:
从字典序的性质上看,无论T的末尾有多大,只要前面部分的较小就可以了!
所以我们可以初步得到下面的这种贪...
分类:
其他好文 时间:
2015-02-07 17:34:06
阅读次数:
244
有n项工作,每项工作分别在Si时间开始,然后在Ti时间结束。对于每项工作,你都可以选择参与或者不参与。如果你选择了参与,那么你必须自始至终都全程参与。此外,参与的时间段不能重叠。(即使是开始的瞬间和结束的瞬间的重叠也是不允许的)
时间不限,你的目的是参与尽可能多的工作,那么最多能参与多少项工作呢?
思路:贪心算法。->在可选的工作中,每次都选取工作结束时间最早的工作。结束时间越早之后可选的工作...
分类:
其他好文 时间:
2015-02-07 13:14:12
阅读次数:
168
一、基本概念:所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。贪心算法没有固定的算法框架,算法设计的关键是贪心策略的选择。必须注意的是,贪心算法不是对所有问题都能得到整体最优解,选择的贪心策略必须具备无后效性...
分类:
编程语言 时间:
2015-02-05 12:49:21
阅读次数:
255
HDU2037:链接:http://acm.hdu.edu.cn/showproblem.php?pid=2037题解: 贪心算法:在对问题求解时,总是作出在当前看来是最好的选择。也就是说,不从整体上加以考虑,它所作出的仅仅是在某种意义上的局部最优解(是否是全局最优,需要证明)。若要用贪心算法求解某...
分类:
其他好文 时间:
2015-02-05 00:41:55
阅读次数:
241
这题用的是贪心算法,不过在贪心之前还是要进行部分处理的。
首先就是题目要求B/P尽可能的大,所以P应该尽可能的小,B应该尽可能的大。但是B和P的处理方式是不一样的,B是所有带宽中最小的那一个,P是所有设备的总价钱,所以我能想到一个方法就是一个一个的枚举B,本来我是不敢这样想的,可是题目给的时间比较长,我觉得应该问题不大,当我运行之后,竟然只是0ms,让我吃了一惊。然后再选择设备,这时候就要用到贪...
分类:
其他好文 时间:
2015-02-04 09:31:34
阅读次数:
160
这题我用的是贪心算法,我的理解是这样的:
要求我最少能赢的次数,就是求别人最多能赢的次数。首先把我的牌先升序排序,然后我从小开始出,对于我出的牌,别人应该尽可能的压,而且用他们比我大的最小的那张牌;如果他们不压,那么他们后面这张牌就很有可能用不上,就少赢一次。
#include
#include
#include
#include
#include
#include
using namespa...
分类:
其他好文 时间:
2015-02-03 23:05:04
阅读次数:
163
这题用的是贪心算法来算的,贪心策略如下:
dist数组表示各个牛的位置距第一个牛的距离,当然之前要对牛的位置进行升序排序。
设a为第一头牛距各头牛的距离的总和,然后从第二头牛开始遍历,假设遍历到第i头牛时,那么标准为:
t=t-(n-i)*d+i*d,
各变量的含义为:t一开始为a,然后每次就是该表达式运算之后的值;
n为牛的总数;
d为第i头牛和第i-1头牛之间的距离。这个公式画图其...
分类:
其他好文 时间:
2015-02-02 23:09:57
阅读次数:
153
这题就是贪心算法,先对length升序排列,如果length相等,再按weight升序排列;反之亦可。然后根据题目要求进行选择即可。
不过我在写排序函数的时候出了一点问题,害得我还一度以为我的贪心策略是错的。
#include
#include
#include
#include
#include
#include
using namespace std;
const int N=5005;
...
分类:
其他好文 时间:
2015-02-02 21:31:16
阅读次数:
124