您的位置:首页 > 其它

hdu2037(今年暑假不AC)

2013-05-09 16:42 183 查看
贪心,先把节目结束时间按升序排序,第一个节目肯定有,从第二个节目开始,如果其结束时间大于等于前一个节目的开始时间,则计数。注意:前一个节目是计数的节目,而不是原始排好序的节目。
#include<iostream>
#include<stdio.h>
usingnamespacestd;
structjiemu
{intstart,end;}p[110];
intcmp(constvoid*p1,constvoid*p2)
{
return(*(jiemu*)p2).end<(*(jiemu*)p1).end?1:-1;
}

intmain()
{
intn,num;
while(cin>>n&&n)
{

for(inti=0;i<n;i++)
cin>>p[i].start>>p[i].end;
num=1;
qsort(p,n,sizeof(p[0]),cmp);
/*
for(inti=0;i<n;i++)
cout<<p[i].start<<""<<p[i].end<<endl;
*/
intt=p[0].end;
for(inti=0;i<n-1;i++)
if(p[i+1].start>=t)
{
t=p[i+1].end;
num++;
}
cout<<num<<endl;
}
return0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: