贪心方法并未考虑整体最优解, 它所做出的选择只是在某种意义上的局部最优选择,不一定能够得到整体最优解。 但是, 有相当一部分问题, 使用贪心方法能够得到整体最优解。
1、装载问题
(1)问题描述
(2)算法描述
2、背包问题
(1)问题描述
(2)背包问题的贪心算法
贪心方法主要用于处理优化问题。 每个优化问题都是由目标函数和约束条件组成。 满足约...
分类:
编程语言 时间:
2014-10-29 13:07:11
阅读次数:
245
HDU Coins(多重背包)
http://acm.hdu.edu.cn/showproblem.php?pid=2844
题意:
现在有价值val[1],val[2],…val[n]的n种硬币, 它们的数量分别为num[i]个. 然后给你一个m, 问你区间[1,m]内的所有数目, 由之前n种硬币来构造(即选取某些硬币使得这些硬币的价值和等于[1,m]区间的特定数), 最多能构造出这m个数中的多少个?
分析:
基本的完全背包问题.
我们令dp[i][j]==x表示...
分类:
其他好文 时间:
2014-10-28 20:04:39
阅读次数:
205
HDU 2191悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(多重背包)
http://acm.hdu.edu.cn/showproblem.php?pid=2191
题意:
假设你有资金n元, 然后有m种大米, 每种大米价格为cost[i], 重量为val[i], 数量为num[i]. 现在问你用n元钱最多能买多重的大米?
分析:
本题是典型的多重背包问题.
我们令dp[i][j]==x表示只购买前i种大米, 且总费用<=j时能购买的大米最大重量为x.
...
分类:
其他好文 时间:
2014-10-28 20:03:19
阅读次数:
234
0-1背包问题解决代码,腾讯的试题中,只需将物品的价值与物品的重量取一样的值即可。PackProblemClass.h:// PackProblemClass.h: interface for the PackProblemClass class.//////////////////////////...
分类:
其他好文 时间:
2014-10-28 16:56:45
阅读次数:
177
以前研究过一个简单的N皇后问题,对回溯法也有了个模糊的认识,大致理解就是:先一直做某件事,当完成某个条件时或者是触犯某个条件时,再返回到最近的一个类似还原点的地方。
在用回溯法求解0-1背包问题的时候,主要遇到三个比价难解决的问题:1,什么是界限函数;2,什么时候用它;3,回溯到哪儿。
什么是界限函数?
如下图:...
分类:
其他好文 时间:
2014-10-28 09:26:19
阅读次数:
129
HDU 4508 湫湫系列故事——减肥记I(完全背包)
http://acm.hdu.edu.cn/showproblem.php?pid=4508
题意:
有n种食物, 每种食物吃了能获得val[i]点幸福度和cost[i]点热量, 现在湫湫每天吃东西的热量不能超过m点. 问她最多能获得多少点幸福度?
分析:
基础的完全背包问题.
本题的限制条件是: 热量总量<=m
本题的目的条件是: 幸福度越大越好.
所以我们令dp[i][j]==x...
分类:
其他好文 时间:
2014-10-27 21:23:18
阅读次数:
192
UVA 357 Let Me Count The Ways(完全背包)
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=293
题意:
有5种硬币: 1分 5分 10分 25分 和50分. 现在给你一个面值n, 问你有多少种方法能利用上述硬币组合出n分的金钱.
分析:
典型的完全背包问题.
本题的限制条件: 硬币钱数正好等于n...
分类:
其他好文 时间:
2014-10-27 21:22:05
阅读次数:
246
腾讯2014研发笔试涉及到了0-1背包问题,由此展开了背包问题的学习。腾讯试题:“背包题目”的基本描述是:有一个背包,能盛放的物品总重量为S,设有N件物品,其重量分别为w1,w2,…,wn,希看从N件物品中选择若干物品,所选 物品的重量之和恰能放进该背包,即所选物品的重量之和即是S。递回和非递回解法...
分类:
其他好文 时间:
2014-10-27 17:29:14
阅读次数:
244
题目意思:
给出面值为1、2、5的个数n1,n2,n3求出最小不连续的值
题目分析:
方法一、多重背包问题的变形,状态转化方程为
if(a[i]==1) a[i+j*v]=1; (0
方法二、由于数据较小直接暴力
对于每一个值,从0到n模拟所有价值,并记录这个值,可以满足
AC代码:
/**
*1、类似背包问题...
分类:
其他好文 时间:
2014-10-27 10:57:01
阅读次数:
185
题目信息:
给出一些物品的价值和个数,分成两份,是这两份的价值相差最小(DP方法)
http://acm.hdu.edu.cn/showproblem.php?pid=1171
AC代码:
/**
*0-1背包问题
*使得总背包的一半空间装尽可能多的价值
*/
#include
#include
using namespace std;
int dp[250...
分类:
其他好文 时间:
2014-10-26 19:46:28
阅读次数:
180