#include<stdio.h>
int main()
{
int n,i,t,m,x;
while(scanf("%d",&n)!=EOF&&n!=0)
{
int Ti_s[100]={0},Ti_e[100]={0};
for(i=0;i<n;i++)
{
scanf("%d%d",&Ti_s[i],&Ti_e[i]);
}
for(i=1;i<=n-1;i++)
{
for(t=0;t<n-i;t++)
{
if(Ti_e[t]>Ti_e[t+1])
{
m=Ti_s[t];Ti_s[t]=Ti_s[t+1];Ti_s[t+1]=m;
x=Ti_e[t];Ti_e[t]=Ti_e[t+1];Ti_e[t+1]=x;
}
}
}
for(t=1,m=0,i=1;i<n;i++)
{
if(Ti_s[i]>=Ti_e[m])
{
t++;m=i;
}
}
printf("%d\n",t);
}
return 0;
}
注意:气泡法排序对于2037这题而言要排在end这个数组上,不过也是改一下if的数组元素名就可以了,主要是以end排序后可以以最早结束的作为最优排法这样排的是最多的节目数,有点贪心的味道。
int main()
{
int n,i,t,m,x;
while(scanf("%d",&n)!=EOF&&n!=0)
{
int Ti_s[100]={0},Ti_e[100]={0};
for(i=0;i<n;i++)
{
scanf("%d%d",&Ti_s[i],&Ti_e[i]);
}
for(i=1;i<=n-1;i++)
{
for(t=0;t<n-i;t++)
{
if(Ti_e[t]>Ti_e[t+1])
{
m=Ti_s[t];Ti_s[t]=Ti_s[t+1];Ti_s[t+1]=m;
x=Ti_e[t];Ti_e[t]=Ti_e[t+1];Ti_e[t+1]=x;
}
}
}
for(t=1,m=0,i=1;i<n;i++)
{
if(Ti_s[i]>=Ti_e[m])
{
t++;m=i;
}
}
printf("%d\n",t);
}
return 0;
}
注意:气泡法排序对于2037这题而言要排在end这个数组上,不过也是改一下if的数组元素名就可以了,主要是以end排序后可以以最早结束的作为最优排法这样排的是最多的节目数,有点贪心的味道。