笑看风云起的专栏

岁月沉积后、蓦然回首:原来不经意之间的印痕也是一种美丽!

活动选择

Problem Description

学校在最近几天有n个活动,这些活动都需要使用学校的大礼堂,在同一时间,礼堂只能被一个活动使。由于有些活动时间上有冲突,学校办公室人员只好让一些活动放弃使用礼堂而使用其他教室。现在给出n个活动使用礼堂的起始时间begini和结束时间endi(begini<endi),请你帮助办公室人员安排一些活动来使用礼堂,要求安排的活动尽量多。

Input

输入有多组数据,每组数据的第一行一个整数n(n<=1000);接下来的n行,每行两个整数,第一个begini,第二个是endi(begini<endi<=32767)

Output

对于每组数据输出最多能安排的活动个数。

Sample Input

11
3 5
1 4
12 14
8 12
0 6
8 11
6 10
5 7
3 8
5 9
2 13

Sample Output

4
//简单贪心问题
//标程:
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
struct ss
{
    int x,y;
}p[1010];
bool cmp(ss a,ss b)
{
    if(a.y!=b.y) return a.y<b.y;
    else if(a.x!=b.x) return a.x<b.x;
}
int main()
{
    //freopen("a.txt","r",stdin);
    int n;
    while(scanf("%d",&n)!=EOF)
    {
        int i;
        for(i=0;i<n;i++)
            scanf("%d%d",&p[i].x,&p[i].y);
        sort(p,p+n,cmp);
        int a=p[0].y,cnt=1;
        for(i=1;i<n;i++)
           if(a<=p[i].x) 
           {
               cnt++;
               a=p[i].y;
           }
        printf("%d\n",cnt);
    }
    return 0;
}
阅读更多
个人分类: 贪心
上一篇扩展二叉树
下一篇取余运算
想对作者说点什么? 我来说一句

活动选择问题代码(c++)

2011年09月22日 2KB 下载

没有更多推荐了,返回首页

关闭
关闭