您的位置:首页 > 其它

杭电 2037 今年暑假不AC

2012-09-02 14:02 309 查看
简单的贪心题:只需要将结束时间利用进行排序后,在未安排的活动中挑选结束时间最早的活动安排,
好给后面的活动安排留出更多的空间,从而达到安排最多活动的目标。 加上一个判断条件就可以搞定了

代码:

View Code

#include<iostream>
#include <stdlib.h>
using namespace std;
struct timee
{
int st;
int ed;
}t[102];
int cmp (const void *a,const void *b)
{
return (*(timee *)a).ed - (*(timee *)b).ed;
}
int main()
{
int n,i,j;
while(cin>>n&&n)
{
for(i=0;i<n;i++)
cin>>t[i].st>>t[i].ed;
qsort(t,n,sizeof(t[0]),cmp);//对结束时间进行从小到大排序
int k=1;
j=0;
for(i=1;i<n;i++)
if(t[i].st>=t[j].ed)
{
j=i;
k++;
}
cout<<k<<endl;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: