贪心小结

这两天做了两天的贪心,知道了一点心得,也知道了一点套路。

好了,进入正题,贪心。

第一个贪心问题,最优装载问题,尽量选择更多的物品:

从小到达排序,然后依次取值,知道空间装满了。

第二个:部分背包问题

第三个:乘船问题

有n个人,第i个人的重量为wi,每艘船的最大载重量均为C,且最多只能坐两个人,用最少的穿装载所有的人。

思路就是从小到达排序,i 表示当前最轻的人,j表示当前最重的人,尽量轻的人i跟尽量重的人 j 配对(坐同一艘船),如果他俩之和超过最大载重,

j--;

反之i++,j--,继续下一组。

核心代码

for(int i = 1; i <= n; i++){
    if( A[i]+A[n] <= C ){
        n--;
    }
    cnt++;
}

第四个问题:

选择不相交区间:

数轴上有n个开区间(ai,bi),选择多个区间,使得这些区间两两没有公共点。

。。。。。未完待续

时间: 2024-10-24 20:58:58

贪心小结的相关文章

2017.8.13 贪心课小结

一.贪心算法的基本概念 1.贪心算法,即期望通过一系列相对孤立却满足局部最优性的决策,得到整体意义上的全局最优解.2.贪心算法仅取决于当前决策的最优性,而不考虑对整体利益的影响.3.贪心算法通常以迭代的方式进行,决策之间不宜相互制约. 二.从局部最优到全局最优 例1:noip2004合并果子:传送门 这个贪心思想很容易想到:每次合并两堆果子最少的,关键是怎么证明.其实这就像是huffman编码,考虑维护一棵二叉树,每棵树的子节点就是刚开始的堆,两个子节点的父亲就是合并后的一堆,可以发现,我们使代

小结:贪心

概要: 这货就考智商和胆量. 技巧及注意: 当需要找线性序列的最优方案时,我们可以考虑排序,但是排序的首要条件是:在考虑其中两个相邻的元素时,它们互相交换对其它无影响,且交换或不交换的情况能得到更优的解.例题:[BZOJ]1629: [Usaco2007 Demo]Cow Acrobats(贪心+排序),[BZOJ]1634: [Usaco2007 Jan]Protecting the Flowers 护花(贪心), 对于题目给的公式啥的,可以适度变性为可做的,例如如果是sum{a+b}可以变成

贪心算法小结

贪心算法,更确切的说是一种解决题目的思想,简单来说是对于问题的特殊解,它可以通过某种特殊的规则,不断地选取最优的策略. 比如说,最简单的贪心问题: 使用最少的硬币数量来解决付账的问题(恰好完成数额, 不需要找零) 区间的调度问题(给你多个区间, 可能会有交叉现象, 你需要找所给你的实现当中找出不交叉的区间数量最大值) 头排序,但是你发现不能找到最优的解. 尾排序,判断先可以结束的是不是头位置不与之前的区间尾部位置有交叉即可以 FENCE REPAIR 最小生成树,霍夫曼树, 灯塔问题(一个点管理

五大算法思想—贪心算法

贪心法理解 贪心法在解决问题的策略上目光短浅,只根据当前已有的信息就做出选择,而且一旦做出了选择,不管将来有什么结果,这个选择都不会改变.换言之,贪心法并不是从整体最优考虑,它所做出的选择只是在某种意义上的局部最优. 一句话:不求最优,只求可行解. 判断贪心法 对于一个具体的问题,怎么知道是否可用贪心算法解此问题,以及能否得到问题的最优解? 我们可以根据贪心法的2个重要的性质去证明:贪心选择性质和最优子结构性质. 1.贪心选择性质 什么叫贪心选择?从字义上就是贪心也就是目光短线,贪图眼前利益,在

贪心法——活动选择问题和背包问题

今天上午听了米老师讲的算法,感觉收获很多,对于算法更加有信心了.首先,先来宏观看一下: 这三种算法总的来说,刚开始看的时候不知道怎么下手,但是看多了也会有那么一点儿感觉.分治法是这三种算法里面都有的思想,动态规划和贪心都是将问题分解成子问题求解,但动态规划里面的子问题都带有联系,而贪心算法里面的子问题都相对独立,唯一不同的是,贪心算法要首先想出一个解决方案来构造求解最优解的过程. 宏观介绍下算法后,来看看贪心算法的两个实例. 一,活动选择问题 解决方案: 对于活动的选择问题,我们求解过程是这样的

HDU 1052 Tian Ji -- The Horse Racing【贪心在动态规划中的运用】

算法分析: 这个问题很显然可以转化成一个二分图最佳匹配的问题.把田忌的马放左边,把齐王的马放右边.田忌的马A和齐王的B之间,如果田忌的马胜,则连一条权为200的边:如果平局,则连一条权为0的边:如果输,则连一条权为-200的边. 然而我们知道,二分图的最佳匹配算法的复杂度很高,无法满足N=2000的要求. 我们不妨用贪心思想来分析一下问题.因为田忌掌握有比赛的“主动权”,他总是根据齐王所出的马来分配自己的马,所以这里不妨认为齐王的出马顺序是按马的速度从高到低出的.由这样的假设,我们归纳出如下贪心

卡题小结

(写于 2014年 11月 23日) 从昨晚打BestCoder到今天的Running IT Youth(定向越野编程比赛),各种卡题痛苦挣扎过后,现在来稍微小结一下: 目前找到的卡题原因大概有如下几点: 1: 就是个可恶的输入输出问题,先说long long的,定义一般直接用long long去定义就行(也不知__int64来定义会不会依赖于不同的操作系统),然后就 是输入输出的问题了,建议在所有的window系统中都用%lld来进行输入输出吧(无论自己的电脑还是图书馆用这个都没问题,貌似64

【转】2014区域赛小结(牡丹江&amp;&amp;鞍山)by kuangbin

Posted on 2014年10月20日 by kuangbin 最后的两场区域赛结束了! ICPC生涯的最后两场区域赛,选择了前两个赛区——牡丹江和鞍山,主要是时间比较靠前,而且我向来对东北赛区有特殊的偏好,我打过的区域赛几乎都是在东北(除了第一年打酱油的时候). 而且特别想回到牡丹江去,在那个曾经打过比赛的地方再打一次比赛,拿回自己想要的. 而且今年岐哥也要打前两场,所以就选择了前两个赛区和岐哥一起打退役赛! 两场比赛采用队名——Final_Battle (最后一战),决心背水一战,认真打

五大算法基本思想—分治,动态规划,贪心,回溯,分支界限

一.算法理解 算法是什么,即是按照一定的步骤,一步步去解决某个问题,解决问题的方法步骤就称为算法,例如数学中我们学过的做一个运算,解一个方程,等等,都需要有一个清晰的思路,一步步地去完成.可以说算法就在身边. 算法和计算机有什么关系,计算机它是机器,没有人类的大脑可以思考,但是它怎么完成我们交给他的人物的呢,就是通过算法(当然是人为预先设计好的),计算机解决任何问题都要依赖于算法,没有算法也就没有计算机. 为了计算机能更好更有效率的运行,算法就必须足够好,既要正确易理解,又要可靠效率.下面来研究