今年暑假不AC
#include <stdio.h>
#include <stdlib.h>
void sort(int *a,int *b,int l)/* 每组数据以结束时间升序排序,a,b分别为开始,结束时间*/
{
int i,j,tt,t2;
for(i=0; i<l-1; i++)
{
for(j=0; j<l-i-1; j++)
{
if(b[j]>b[j+1])
{
tt=b[j];
b[j]=b[j+1];
b[j+1]=tt; /* 对结束时间排序*/
t2=a[j];
a[j]=a[j+1];
a[j+1]=t2; /* 选择相应的开始时间*/
}
}
}
}
int main()
{
int t1,t2;
int i,n;
int count=1; /* 至少能完整看完一个*/
int a[1000],b[1000];
while((scanf("%d",&n))!=EOF&&n!=0)
{
for(i=0; i<n; i++)
scanf("%d%d",&a[i],&b[i]);
sort(a,b,n);
t2=b[0];
t1=a[0];
for(i=1; i<n; i++)
{
if(a[i]>=t2)
{
count++;
t1=a[i];
t2=b[i];
}
}
printf("%d\n",count);
count=1;
}
return 0;
}
思路:此题使用贪心算法,先对结束时间进行排序,开始时间晚于上个结束时间即可+1