贪心算法之活动安排

来源:互联网 发布:淘宝手机流量互刷 编辑:程序博客网 时间:2024/06/07 13:53

最近我们老师教我们数据结构。我自己在这个博客上写一写顺便复习一下。
这是一个贪心算法的活动问题。题目大概意思是 有许多人共用一个资源,怎么样合理地运用资源能使资源最大化。
这个问题的思想大概是这样:先将所有问题的结束时间按增序排列,然后进行第一个活动。同时之后的活动要和前面的活动不冲突,也就是后面的活动的开始时间要大于等于前面的结束时间。

**#include <iostream>#include <algorithm>using namespace std;typedef struct x{    int start;    int end;}m;bool cmp(m a,m b){    return a.end < b.end;}int main(){    m act[101];    int n ;    cin>>n;    for (int i = 1; i <= n; i++)    cin>>act[i].start>>act[i].end;    sort(act,act+n+1,cmp);    int num = 1,temp = act[1].end;    for(int i = 2; i < n; i++)    {        if(temp <= act[i].start)        {            temp = act[i].end;            num++;        }    }    cout << num;    return 0;}**
原创粉丝点击