![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Greedy Algoritm
GNIHTON
这个作者很懒,什么都没留下…
展开
-
An activity-selection problem(Greedy Algorithm)
思路:要求出最大解集,可以将所有活动按照结束时间从小到大排序,然后遍历一遍所有活动,只要当前活动开始时间不小于上一活动结束时间便可加入集合中。这样求出的最大解集只是可行的最大解集的其中一种。 代码实现如下: #include #include #include using namespace std; struct activity { int s; int f; };原创 2018-01-05 17:29:53 · 935 阅读 · 0 评论 -
最小生成树之Kruskal算法
最小生成树: Kruskal算法描述:该算法是基于贪心的思想得到的。首先我们把所有的边按照权值先从小到大排列,接着按照顺序选取每条边,如果这条边的两个端点不属于同一集合,那么就将它们合并,直到所有的点都属于同一个集合为止。合并顶点可以利用并查集,换而言之,Kruskal算法就是基于并查集的贪心算法。 Kruskal算法流程: 1. 新建图G,G中拥有原图中相同的节点,但没有边; 2原创 2018-01-05 21:29:41 · 502 阅读 · 0 评论 -
最小生成树之Prime算法
题目链接:http://poj.org/problem?id=1258 思路:题目本质就是要求最小生成树,根据题目给出的测试数据格式利用prime算法即可,代码实现如下: #include #include using namespace std; const int MAXN = 102; const int INF = 0xfffffff; int graph[MAXN][MAXN原创 2018-01-06 14:42:27 · 268 阅读 · 0 评论