贪心法
Nicolas Lee
Yesterday you said tomorrow
展开
-
基础练习 Huffuman树
题目链接 蓝桥杯---基础练习 题解问题描述 Huffman树在编码中有着广泛的应用。在这里,我们只关心Huffman树的构造过程。 给出一列数{pi}={p0,p1, …,pn-1},用这列数构造Huffman树的过程如下: 1. 找到{pi}中最小的两个数,设为pa和pb,将pa和pb从{pi}中删除掉,然后将它们的和加入到{pi}中。这个过程的费用记为p...原创 2019-01-26 16:08:03 · 233 阅读 · 0 评论 -
排队打水问题 贪心
题目链接问题描述 有n个人排队到r个水龙头去打水,他们装满水桶的时间t1、t2………..tn为整数且各不相等,应如何安排他们的打水顺序才能使他们总共花费的时间最少?分析:贪心。每次将剩下接水花费时间最短的人排在等待时间最短的水龙头上,每一次加入一个人的时候水龙头的等待时间延长,需要重新排序。总的时间复杂度O(nlogr)其实也可以用优先队列优化,但是数据量不大,不优化也行方...原创 2019-04-27 16:02:11 · 1605 阅读 · 0 评论 -
Dragon of Loowater UVA - 11292 勇者斗恶龙 贪心
题目链接你的王国里有一条n个头的恶龙,你希望雇一些骑士把它杀死(即砍掉所有头)。村里有m个骑士可以雇佣,一个能力值为x的骑士可以砍掉恶龙一个直径不超过x的头,且需要支付x个金币。如何雇佣骑士才能砍掉恶龙的所有头,且需要支付的金币最少?注意,一个骑士只能砍一个头(且不能被雇佣两次)。分析:两者都排序,在knights中从小到大依次寻找的符合当前最小dragon的knight值。如果遍历完...原创 2019-04-03 19:27:40 · 221 阅读 · 0 评论 -
Commando War UVA - 11729 突击战
题目链接突击战你有n个部下,每个部下需要完成一项任务。第i个部下需要你花Bi分钟交代任务,然后他会独立地、无间断地执行Ji分钟后完成任务。你需要选择交代任务的顺序,使得所有任务尽早执行完毕(即最后一个执行完的任务应尽早结束)。注意,不能同时给两个部下交代任务,但部下们可以同时执行他们各自的任务。分析:贪心。交代任务是必须要做的,那么将执行时间最长的任务放在最前面最节省时间。(交换次...原创 2019-04-03 20:58:15 · 236 阅读 · 0 评论 -
历届试题 翻硬币
问题描述小明正在玩一个“翻硬币”的游戏。桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零)。比如,可能情形是:**oo***oooo如果同时翻转左边的两个硬币,则变为:oooo***oooo现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢?我们约定:把翻动相邻...原创 2019-03-19 19:52:25 · 272 阅读 · 0 评论 -
基础练习 完美的代价
题目链接问题描述 回文串,是一种特殊的字符串,它从左往右读和从右往左读是一样的。小龙龙认为回文串才是完美的。现在给你一个串,它不一定是回文的,请你计算最少的交换次数使得该串变成一个完美的回文串。 交换的定义是:交换两个相邻的字符 例如mamad 第一次交换 ad : mamda 第二次交换 md : madma 第三次交换 ma : madam (回文!完美!)...原创 2019-03-10 21:12:45 · 296 阅读 · 0 评论 -
算法训练 拦截导弹
题目链接锦囊2求一套系统拦截的导弹最大值为最长不下降子序列问题,用动态规划。 求最少多少套系统需要使用贪心法,每枚后面的炮弹使用能拦截它的最低的系统。问题描述 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,...原创 2019-02-23 23:05:15 · 2040 阅读 · 0 评论 -
Defense Lines UVA - 1471 防线
题目:https://vjudge.net/problem/UVA-1471#author=0题意:给定一个序列,要求删去一个连续子序列后,得到的序列有一个最长的连续递增序列,输出最长连续递增序列长度【分析】为了方便叙述,下面用L序列表示“连续递增子序列”。删除一个子序列之后,得到的最长L序列应该是由两个序列拼起来的,如图8-15所示。最容易想到的算法是枚举j和i(前提是A[j]&...原创 2019-01-30 17:20:50 · 232 阅读 · 0 评论 -
算法提高 打水问题
题目链接问题描述 N个人要打水,有M个水龙头,第i个人打水所需时间为Ti,请安排一个合理的方案使得所有人的等待时间之和尽量小。输入格式 第一行两个正整数N M 接下来一行N个正整数Ti。 N,M<=1000,Ti<=1000输出格式 最小的等待时间之和。(不需要输出具体的安排方案)样例输入7 33 6 1 4 2 5 7样例输出11...原创 2019-02-07 20:17:29 · 689 阅读 · 2 评论 -
Fabled Rooks UVA - 11134 传说中的车 问题分解
题目:https://vjudge.net/problem/UVA-11134 【分析】两个车相互攻击的条件是处于同一行或者同一列,因此不相互攻击的条件就是不在同一行,也不在同一列。可以看出:行和列是无关的,因此可以把原题分解成两个一维问题。在区间[1~n]内选择n个不同的整数,使得第i个整数在闭区间[n1i, n2i]内。思路:将[min,max]用max大小进行排序,排好序后在1~n...原创 2019-01-27 19:40:22 · 218 阅读 · 0 评论 -
Beijing Guards UVALive - 3177 长城守卫 二分+贪心
Beijing was once surrounded by four rings of city walls: the Forbidden City Wall, the Imperial CityWall, the Inner City Wall, and nally the Outer City Wall. Most of these walls were demolished i...原创 2019-05-03 20:09:50 · 250 阅读 · 0 评论