“今年暑假不AC?”
“是的。”
“那你干什么呢?”
“看世界杯呀,笨蛋!”
“@#$%^&*%...”
确实如此,世界杯来了,球迷的节日也来了,估计不少ACMer也会抛开电脑,奔向电视了。
做为球迷,必定想看尽可能多的完整的比赛,固然,做为新时代的好青年,你必定还会看一些其它的节目,好比新闻联播(永远不要忘记关心国家大事)、很是6+七、超级女生,以及王小丫的《开心辞典》等等,假设你已经知道了全部你喜欢看的电视节目的转播时间表,你会合理安排吗?(目标是能看尽可能多的完整节目)
算法
12 1 3 3 4 0 7 3 8 15 19 15 20 10 15 8 18 6 12 5 10 4 14 2 9 0
这个题看的时候比较难,就在网上找了一下大佬的代码参考,明白了大概的思路。首先是对输入的n组数组按结束时间的顺序进行排序,这里有一个细节要注意,若是你用结构体的话你能够一次性实现一组数据的交换,但你用二维数组的时候你就必须把一组中两个数组都拿出来分别交换,这里可能会缺乏考虑而出错。排完序以后即可以用贪心算法得出结果。代码以下:数组
int main(){
int i,j,a[100][2],cnt,s,t1,t2,end;
while(scanf("%d",&s)&&(s!=0))
{
cnt=1;
for(i=0;i<s;i++)
{
for(j=0;j<2;j++)
{
scanf("%d",&a[i][j]);
}
}
for(i=0;i<s-1;i++)
{
for(j=i+1;j<s;j++) { if(a[i][1]>a[j][1])
{
t1=a[j][1];
a[j][1]=a[i][1];
a[i][1]=t1;
t2=a[j][0];
a[j][0]=a[i][0];
a[i][0]=t2;
测试
}
}
}
end=a[0][1];
for(i=1;i<s;i++)
{
if(a[i][0]>=end)
{
cnt++;
end=a[i][1];
}
}
printf("%d",cnt);
printf("\n");
}
return 0;
}
ui