码迷,mamicode.com
首页 >  
搜索关键字:贪心法    ( 175个结果
【算法学习笔记】25.贪心法 均分纸牌问题的分析
贪心法:贪?算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,关键是贪?心策略的选择,选择的贪?策略必须具备?后效性,即某个状态以后的过程不会影响以前的状态,只...
分类:编程语言   时间:2015-03-31 22:11:10    阅读次数:244
uva12563 Jin Ge Jin Qu hao(01背包)
这是一道不错的题。首先通过分析,贪心法不可取,可以转化为01背包问题。但是这过程中还要注意,本题中的01背包问题要求背包必须装满!这就需要在普通的01背包问题上改动两处,一个是初始化的问题:把dp[0]初始化为0,而其它的dp值都初始化为-1,表示不符要求。为什么这么初始化?背包九讲里说到:“初始化...
分类:其他好文   时间:2015-03-20 01:21:01    阅读次数:160
HDU 1009
这道题使用贪心法,为了得到最多的javabean,需要从价格最便宜的开始买,直到所有的food都用完。#include #include #include struct sg{ double javabean; double foodcat; double price;};stru...
分类:其他好文   时间:2015-03-16 19:02:08    阅读次数:143
例题1.2 突击战 UVa11729
1.题目描述:点击打开链接 2.解题思路:本题利用贪心法解决。由于让总时间最短,因此可以先安排执行时间最长的任务,因为安排任务的总时间是无法改变的,总时间取决于执行任务的最长时间,因此应该先安排执行时间最长的任务。具体证明自己画图即可得证。 3.代码: #define _CRT_SECURE_NO_WARNINGS #include #include #include #include #...
分类:其他好文   时间:2015-03-10 17:24:43    阅读次数:105
基本算法概论
基本算法主要分为以下四类:1、子结构类算法:分治算法,贪心法,动态规划子结构问题主要是要知道怎么从子结构问题的解推出现在问题的解,最粗糙的是简单递归,在递归的基础上进行改进就形成了分治、贪心和动态规划。 动态规划本质上只是减少了在递归过程中对子结构问题的重复求解,但是并没有缩小子结构问题的求解空.....
分类:编程语言   时间:2015-03-08 15:39:31    阅读次数:133
贪心法——乘船问题
题目大致是: 有n个人,第i个人的重量为w[i],每艘船的最大载重量均为c,且最多只能乘两个人。用最少的船装载所有人。 解: 首先从最轻的人开始考虑,那么他应该和最重的人去坐,如果每个人都不能和它坐船,那么唯一的方法就是每个人做一艘船。 否则,他应该选择能够和他一起坐船的人中最重的那个,这样子才不会浪费。   #include #include #include #include us...
分类:其他好文   时间:2015-03-05 22:22:40    阅读次数:216
sicily 1176 (动态规划)
题目连接:sicily 1176解题思路: 题目看上去像是一道博弈的题,又像是一道区间型DP的题目(矩阵取数),而它跟矩阵取数的区别就是他是两个人在取数,所以每次对一个区间,我们应分两种情况考虑:第一个人取左边的数和取右边的数,而在分别考虑这两种情况时,我们又要根据贪心法则来获取上一个取数的区间。状态方程有点复杂,直接上代码了:// Problem#: 1176 // Submission#: 3...
分类:其他好文   时间:2015-03-05 17:05:17    阅读次数:225
#292(div.2) D.Drazil and Tiles
1.题目描述:点击打开链接 2.解题思路:本题一开始迟迟没有好的思路,随后通过思考,发现应该用贪心法解决:首先应该着力填充周围只有一个空格的点,随后以它的空格为中心,再不断向外拓展,直到整个界面被填充。这样便解决了本题。 3.代码: #define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include #i...
分类:其他好文   时间:2015-03-02 13:09:48    阅读次数:137
例题9-12 工人的请愿书 UVa12186
1.题目描述:点击打开链接 2.解题思路:本题利用树状dp解决,不过其实也可以理解为用贪心法解决的。设d(u)表示u给上级发信最少需要的工人个数,假设u有k个子结点,那么根据题意,至少需要c=(k*T-1)/100+1个直属下属发信才行。而每个直属下属的工人数是di,那么这时只需要把di由小到大排序,然后把前c个相加就是d(u)了。最终的答案是d(0)。由于需要排序,因此总的时间复杂度是O(N*...
分类:其他好文   时间:2015-02-15 09:31:13    阅读次数:245
[LeetCode]Candy
There are N children standing in a line. Each child is assigned a rating value. You are giving candies to these children subjected to the following requirements: Each child must have at least on...
分类:其他好文   时间:2015-02-12 10:48:33    阅读次数:111
175条   上一页 1 ... 10 11 12 13 14 ... 18 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!