
贪心
lhrsdl
这个作者很懒,什么都没留下…
展开
-
poj3253 哈夫曼贪心
题意:把木板切成长度如第二行(及以后)的n块(第一行为n)木板,且切断木板耗费的能量为当前木板本身的长度,想办法求出 所需最少能量并输出。 注意:输出结果要用long long 来存,int存不下 思路:先找问题切入点,求出所需最少能量,那就考虑怎样才能在给定的切割方案中寻找最省力的方案。 从这题给的数据来看就要倒过来想问题,也就是说把一段段切好的木板不断合拢回原来长度原创 2015-02-08 21:33:09 · 614 阅读 · 0 评论 -
Codeforces 295 Div2 B.Two Buttons
题意:给两个数n和m,对n能进行两种操作:将这个数*2,将这个数-1,最后使得这个数可以等于给的另一个数m。问最少需要用多少步。 思路:贪心,转换思维,可以视为让m不断靠近n,首先需要判断n和m的大小,如果n比m大那只能通过n-m步对n进行–操作,这就是这种情况的答案。 如果m>n,那就尽量让n*2靠近m,也就是m/2,当m为偶数的时候就这样操作,奇数则m++,这样操作直到n>=m,再加上此时n原创 2015-04-07 21:08:31 · 731 阅读 · 0 评论 -
poj3069贪心、思想、技巧
题意:设置哨兵位置,给一堆点,每个哨兵可以覆盖m米的地方(向前或向后),问如果把所有的点都覆盖到需要最少多少个哨兵点。 给一组数据,第一行两个数哨兵范围m和点的数量n 第二行n个点的位置 10 7 70 30 1 7 15 20原创 2015-02-08 20:41:13 · 609 阅读 · 0 评论 -
poj1017 贪心 思维 好题
题意:运输公司有6种规格的物品各若干件:1*1 , 2*2,3*3 ,4*4,5*5,6*6的,这六种物品都要放在6*6的箱子里运输,让你求出最少用多少个箱子。 解题思路:有两种方法来做,第一种特别繁琐,也是最直接的解决方式,那就是根据常识来贪心并模拟,代码量很大,另一种和这个贪心一个思路,实现的时候非常简便,下面是贪心的大致思路: 6*6的只能用单独的箱子来放;原创 2015-02-15 19:37:33 · 1125 阅读 · 1 评论 -
poj3617 贪心
题意:对给的字符串只能进行两种操作(从头或尾拿走一个字符),使得目标字符串字典序尽可能小题意明白了思路就清晰了,字典序尽可能小,就把头和尾进行比较,如果相同就比较打头第二个和倒数第二个的大小,直到出现较小的那个再将其(首 或尾--字符)输出,一样的话随便输出头尾字符都行,注意越界并且小心PE(80个字符换一行)。#include <iostream>#include <cstdio>#in原创 2015-02-07 17:03:55 · 575 阅读 · 0 评论 -
poj2376区间贪心
题意:给出n段区间和区间长度T(从1开始),以下n行为每段区间的首位地址,求最少需要几段将所有区间覆盖,如果不能全覆盖就输出-1.原创 2015-02-09 23:32:03 · 622 阅读 · 0 评论 -
poj3190 区间贪心 + STL
题意:n头任性的牛,每头牛都要在自己的时间段里挤奶,问最少用多少个挤奶槽并输出每头牛所在的挤奶槽的编号(从1开始)思路:目标明确,求最少用多少奶槽,并输出如何分配,明显区间贪心,找贪心的方向,就是对时间的最末端进行贪心。简单来说,先把奶牛们的时间输入并按开始时间进行排序,然后依次把有序的时间段都放入堆中,在此过程中每次取出堆中末端时间最小的和当前放入堆的时间段进行比较,如果能放到同一个槽就原创 2015-02-13 00:03:06 · 624 阅读 · 0 评论 -
poj3262 比率贪心
题意:农夫要把满农场吃花的牛牵回去,每头牛牵回去需要花ti的时间,每头牛每秒吃ci个花,问把所有牛牵回去需要花费最少花的数量,其中ti时间需要x2,并且牛在牵走的过程中不吃花. 思路:一开始我贪心策略想错了,以为单纯按照时间长短来贪,然后再比较花费,后来发现得出答案是错的,有逻辑问题,简单取几个极限就可以证明,其实正确的贪心方法是按照比率来贪,以后遇到这样的就有经验了,按照时间和花费比从小到大排序原创 2015-02-20 11:30:25 · 1038 阅读 · 0 评论 -
poj1328 区间贪心 雷达覆盖岛屿
题目地址传送门:http://poj.org/problem?id=1328题意:给若干的岛屿坐标和雷达覆盖半径,让你在海岸线(X轴)上建立雷达站以覆盖所有岛屿,求出最少需要多少个雷达,如果不能覆盖全部就输出-1思路:典型的区间贪心,先考虑不能完全覆盖的情况,就是如果半径小于岛屿y轴高度(这个现实生活中倒是有可能出现),或者雷达覆盖面积小于等于0(这个显然扯犊子),还有一种就是岛的原创 2015-02-10 17:39:59 · 1029 阅读 · 0 评论 -
poj 1862 还是哈夫曼思想贪心
题意:科学家发现一种奇怪的玩意,他们有重量Wi, 如果他们碰在一起,总重变成2*sqrt(t1*t2)。 要求出最终的重量的最小值。思路:果然A题多点经验就用上了,跟农夫锯木头那个一个思路,哈夫曼思想,把所有重量放堆里,每次取俩最小的处理再放堆里,最后堆剩下的最后元素就是答案了代码:#include #include #inclu原创 2015-02-19 22:32:27 · 639 阅读 · 0 评论 -
poj2287 田忌赛马
题意:田忌和齐王各有n匹马,想办法尽可能让田忌赢更多的钱,赢一场200,输一场-200,平不扣。贪心思想:先拿田忌最好的马跟齐王最好的马比: 如果快则赢下,如果慢则用最慢的马跟齐王最快的马比 如果一样快则比较二者最慢的马: 如果田忌的慢马比齐王的慢马快则赢下 反之就用田忌的这个慢马跟齐王最快的马比(反正这匹马输定了,那就让它输原创 2015-02-09 14:14:34 · 821 阅读 · 0 评论 -
HDU 1003 MAX SUM 贪心
原来就写过的经典贪心,本来今天想用尺蠖法再写的,后来发现好像写不出来。。。其实也不太算贪心,就是从头扫到尾,找当前的子序列的大小关系:初始化sum和ans都为负无穷,然后从头开始扫,伪代码如下:sum if: sum t_start = t_end = i sum = a[i] if: sum > ans ans = sum; start = t_start原创 2015-01-13 16:24:37 · 607 阅读 · 0 评论 -
codeforces 294 div2.C
题意:三人组队必须由1名大神带2个菜鸟或者2个大神带1个菜鸟组成,问最多能组几支队伍,给出大神的数量n和菜鸟的数量m 思路:竟然想麻烦了,简单的贪心,因为队伍数量最多不过(大神+菜鸟)总数的三分之一(大神:菜鸟正好为1:2或2:1)而已,结果就是大神、菜鸟和(大神+菜鸟)/3最小的那一个 即 ans = min(a,b,(a+b)/3)原创 2015-04-08 20:23:06 · 799 阅读 · 0 评论