提高篇:贪心算法

在新的一本书中又开始了对贪心算法的学习。此次学习中主要学习应用的部分是区间贪心。

在这一部分贪心的目的是要求区间利用的最大化,例题来说主要解决的方法便是尽可能的选择耗费时间少的区间,但在贪心时,如果有规律可循,那么只要区间时间不重合排列那么就是可以的。同样贪心对每个题的算法都不同,更多的还是自己适应不同的题目方式找规律。

活动安排例题思路:首先把每个区间的右端点进行排序,然后在选择区间时,选择与前一个最近并不重合的区间,最后求出总值。

题目:

设有 n 个活动的集合 E={1,2,..,n},其中每个活动都要求使用同一资源,如演讲会场等,而在同一时间内只有一个活动能使用这一资源。每个活动i都有一个要求使用该资源的起始时间si和一个结束时间fi,且si

输入

第一行一个整数 n(n<=1000);接下来的 n 行,每行两个整数 si 和 fi。

输出

输出尽可能多的互相兼容的活动个数。

#include
#include
#include
#include
#include
#include
using namespace std;
struct hou
{
    int s,m;
}a[1005];
bool cmp(hou x,hou y)
{
    return x.m =t)
        {
            sum++;
            t=a[i].m;
        }
    }
    printf("%d",sum);
}
	
		
		

 

你可能感兴趣的:(提高篇:贪心算法)