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 }