SDUT 2073 活动选择问题

此题是上机考试题,是个水题,但是考试的时候给弄晕了,没做出来。要先排序。然后就是贪心了。

题目描述

sdut大学生艺术中心每天都有n个活动申请举办,但为了举办更多的活动必须要放弃一些活动,求每天最多能举办多少场活动。

输入

 输入包括多组输入,每组输入第一行为申请的活动数n,从第2行到n+1行,每行两个数,是每个活动的开始时间b,结束时间e;

输出

 输出每天最多能举办的活动数。

示例输入

12
15 20
15 19
8 18
10 15
4 14
6 12
5 10
2 9
3 8
0 7
3 4
1 3

示例输出

5

View Code
 1 #include<stdio.h>
 2 int main()
 3 {
 4     int i,j,n,t,b[100],e[100],s;
 5     while(scanf("%d",&n)!=EOF)
 6     {
 7         for(i=0;i<n;i++)
 8         scanf("%d%d",&b[i],&e[i]);
 9     for(i=0;i<n-1;i++)
10         for(j=i+1;j<n;j++)
11             if(e[i]>e[j])
12             {
13                 t=e[i];e[i]=e[j];e[j]=t;
14                 t=b[i];b[i]=b[j];b[j]=t;
15             }
16     t=e[0];s=0;
17    for(i=0;i<n;i++)
18     {
19         if(b[i]>=t)
20         {
21             t=e[i];
22             s++;
23         }
24    }
25     printf("%d\n",s+1);
26     }
27     return 0;
28 } 
原文地址:https://www.cnblogs.com/timeship/p/2519796.html