随笔分类 -  贪心

摘要:题意:给出一些区间,求一个集合的长度要求每个区间里都至少有两个集合里的数。解法:贪心或者差分约束。贪心的思路很简单,只要将区间按右边界排序,如果集合里最后两个元素都不在当前区间内,就把这个区间内的最后两个数加入集合,如果只有一个元素在区间里就加一个,如果两个元素都在区间里就不加。差分约束系统用来解一... 阅读全文
posted @ 2015-10-15 12:38 露儿大人 阅读(240) 评论(0) 推荐(0)
摘要:题意:一个建筑物里有400个房间,房间都在一层里,在一个走廊的两侧,如图,现在要搬n张桌子,告诉你每张桌子是从哪个屋搬到哪个屋,搬桌子的线路之间不可以有重叠,问最少搬几次。解法:贪心。一开始觉得只要排个序,然后按顺序一次一次的分配就可以了……但是wa了……百度之后知道只要看哪块地的使用次数最多就是答... 阅读全文
posted @ 2015-09-30 13:54 露儿大人 阅读(138) 评论(0) 推荐(0)
摘要:题意:一个人要在n个湖中钓鱼,湖之间的路径是单向的,只能走1->2->3->...->n这一条线路,告诉你每个湖中一开始能钓到鱼的初始值,和每钓5分钟就减少的数量,以及湖之间的距离,问用h小时最多钓多少鱼。鱼的数量不会增加,而且如果不钓鱼的话鱼的数量不会减少,如果有多个答案,输出在小号的湖上花费时间... 阅读全文
posted @ 2015-09-29 13:43 露儿大人 阅读(181) 评论(0) 推荐(0)
摘要:题意:FJ要修栅栏,要用n段木板,每段长Li,现在FJ有一块长为∑Li的木板,要把这块木板分成n段,需要切割n-1次,每次的费用是当前木板长度,问最少要用多少费用。解法:利用哈弗曼树的思想贪心,用优先队列维护。每次取最小的两个木板,再将和放到优先队列中。代码:#include#include#inc... 阅读全文
posted @ 2015-09-15 14:27 露儿大人 阅读(117) 评论(0) 推荐(0)
摘要:题意:在一个只有0和1的矩阵里,从左上角走到右下角, 每次可以向四个方向走,每个路径都是一个二进制数,求所有路径中最小的二进制数。解法:先bfs求从起点能走到离终点最近的0,那么从这个点起只向下或向右走就可以获得位数最少的二进制数,然后贪心的想,如果后或下有0就一定走0,没0就把1都看一遍,以之前搜... 阅读全文
posted @ 2015-08-02 12:31 露儿大人 阅读(118) 评论(0) 推荐(0)
摘要:题意:有n个学习领域,每个领域有m个课程,学习第i个领域的第j个课程可以获得sij个技能点,在每个领域中选择一个课程,要求获得的n个技能点的最大值减最小值最小,输出符合要求的策略。解法:尺取法。将课程的技能点按值进行排序,同时要记录每个值对应的领域,用尺取法选择第一段包含全部领域的区间,区间的边界即... 阅读全文
posted @ 2015-07-29 10:51 露儿大人 阅读(308) 评论(0) 推荐(0)
摘要:题意:给一个字符串,其中只有F、A、N三种字母,问最少交换多少次能使所有的A在所有F之前。解法:贪心。先预处理每位的左边有多少F右边有多少A,对于每位A必须至少向左交换的次数为它左面的F个数,而对于N来说比较左面F的个数和右面A的个数,将少的部分交换至N的另一端。将以上两种情况的答案加和即为最后答案... 阅读全文
posted @ 2015-07-29 10:43 露儿大人 阅读(170) 评论(0) 推荐(0)
摘要:题意:在一片海上有一堆岛,设海岸线为x轴,海为第一二象限,在x轴上可以放置雷达,每个雷达的作用范围是一个半径为d的圆,问最少放几个雷达能把所有岛都包含。解法:贪心。一开始的想法是把岛按横坐标排序,枚举正好在雷达作用圆的边界上的岛对应的雷达坐标,选择能够覆盖这个岛之前所有的岛的点,并且把所有能覆盖的岛... 阅读全文
posted @ 2015-05-12 20:42 露儿大人 阅读(139) 评论(0) 推荐(0)