通过这一段时间对贪心算法的练习,即通过对落单的数、主元素等的编程,我加深了对贪心算法的理解,更加明白如何通过贪心找到其局部最优解。
注意:贪心算法不是从整体上考虑问题,它所做出的选择只是在某种意义上的局部最优解。
基本思想:通常以把总体分开的方式进行,以依次调整的方式作出相继的贪心选择,每一次的贪心选择将所求问题简化为规模更小的子问题。
做题情况:
学习贪心算法,所给的15道题中只AC了10道,并且有大部分题目自己打不出来只能搜一下看看别人的思路才可以,除了几道水题以外,大部分题目是用到贪做了这套题,虽然感觉很困难,但想办法还是能AC几道题的,做过这些题目使我对贪心算法印象加深,算是有进步吧,但还是不熟练,还需要加强训练。简短截说,还是在复习回顾一下,关于贪心算法的经典题目吧。
在此列出几个例题:
1背包问题(物品可以分割)
struct bag{
int w;
int v;
double c;
};
按性价比排序
选性价比高的装入
2最优装载问题
struct load{
int index;
int w;
};
按集装箱的重量排序
将重量最轻者先装
3活动安排问题
struct action{
int s;
int f;
int index
};
然后排序
用数组记录被选中的活动
学习还需要继续努力。
ACM贪心算法总结
最新推荐文章于 2020-02-13 13:43:57 发布