关键:看问题有没有贪心选择性质和最优子结构性质。有些问题看似是可以用贪心算法,但是实际用贪心算法却得不到最优解。构造贪心算法后,需要一定的证明来确定它的正确性。常用证明方法:反证法、调整法。 几个基本问题: 1. 活动安…
分类:贪心算法
树形动态规划
树形动态规划,顾名思义就是树+DP,先分别回顾一下基本内容吧: 动态规划: 问题可以分解成若干相互联系的阶段,在每一个阶段都要做出决策,全部过程的决策是一个决策序列。要使整个活动的总体效果达到最优的问题,称为多阶段决策问…
动态规划之01背包和完全背包
01背包问题(注意看注释) 有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。每种物品仅有一件,可以选择放或不放。求解将哪些物品装入背包可使价值总和最大。 f[i][v]表示前i件物品恰放入一个…
【算法】贪心算法(0-1背包问题)
什么是贪心算法? 贪心算法并不是一个具体的算法,而是一种算法的思想,或者说是解决问题一种思路。这就有两个关键的点,可以解释贪心算法: 贪心算法解决什么问题? 贪心算法是怎样的一种思路? 1. 贪心算法解决什么问题 解决求…
贪心算法——删数问题
已经很久没有和大家见面了!今天给大家带来的是贪心算法中的一类问题——删数问题。 那么首先我们要了解:贪心算法是什么??? 所谓贪心算法,当然是很贪心的算法。就是鼠目寸光地从局部看全局,首先得到局部的最优解,从而推导出全局…
贪心算法之木棍问题
问题 H: 木棒 时间限制: 1 Sec 内存限制: 32 MB 提交: 147 解决: 60 提交 状态 题目描述 现有n根木棒,已知它们的长度和重量。要用一部木工机一根一根地加…
利用贪心算法求解tsp问题
一、TSP问题 TSP问题(Travelling Salesman Problem)即旅行商问题,又译为旅行推销员问题、货郎担问题。假设有一个旅行商人要拜访n个城市,他必须选择所要走的路径,路径的限制是每个城市只能拜访一…
算法(九)贪心算法之排队问题
题目描述: Suppose you have a random list of people standing in a queue. Each person is described by a pair of inte…
poj 1017 贪心算法
贪心算法总是作出在当前看来最好的选择。也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择。当然,希望贪心算法得到的最终结果也是整体最优的。虽然贪心算法不能对所有问题都得到整体最优解,但对许多…
贪心算法步骤
1.将最优化问题转化为这样的形式:对其做出一次选择后,只剩下一个子问题需要求解。 2.证明做出贪心选择后,原问题总是存在最优解,即贪心算法总是安全的。 3.证明做出贪心选择后,剩余的子问题满足性质:其最优解与贪心选择组合…
贪心法——最优装载问题
贪心法——最优装载问题 最优装载问题。给出 n 个物体,第 i 个物体重量为 wi 。选择尽量多的物体,使得总重量不超过 C 。 只关心物体的数量,这样只需把所有物体按重量从小到大排序,依次选取每个物体,直到装不下为止。…
动态规划-最长递增子序列
#include<stdio.h> #include<stdlib.h> #include<iostream> using namespace std; int dp[20]; int…