贪心算法
是什么
与动态规划类似的是都是解决最优化问题,但是动态规划是从一端开始,求出所有的最优解。而贪心算法则是一开始就做出一次认为的最优选择,很贪心的希望一次就解决问题,该选择不一定正确,但很多时候可以解决问题
贪心算法能够解决问题的原理
考虑任意非空子问题空间Sk,令am是Sk中结束时间最早的活动,则am在Sk的某个最大兼容活动子集中。
怎么用
#include <iostream>
#include <vector>
using namespace std;
/** \brief 贪心算法,添加一个活动起止时间都是0,便于运算
* \param s vector<int>& 每个活动的起始时间
* \param f vector<int>& 每个活动的结束时间,升序排列,相同时,按照起始时间排序
* \param k int 第一个活动下标
* \param n int 最后一个活动下标
* \param ans vector<int>& 保存结果
* \return void
*/
void Greedy(vector<int> &s, vector<int> &f, int k, int n,vector<int> &ans)
{
int m = k + 1