1、题目编号:1004
2、简单题意:给你N个节目,合理安排能看到的节目最多。
3、解题思路及形成过程:先按节目结束时间排序,找最先结束的先看,然后再找开始时间再第一个结束后但结束时间除第一个外是最早结束的,依次寻找就是最优解。
4、感悟:
5、代码:#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
struct hodo
{
int x;int y;
}s[100];
bool cmp(const hodo &a,const hodo &b)
{
if(a.y!=b.y)return a.y<b.y;
else return a.x<b.x;
}
int main()
{
int n,i,j,TS,TE;
vector<hodo>v;
while(cin>>n&&n)
{
int sum=1;
for(i=0;i<n;i++)
{
cin>>s[i].x>>s[i].y;
v.push_back(s[i]);
}
sort(v.begin(),v.end(),cmp);
TS=v[0].x;TE=v[0].y;
for(j=1;j<n;j++)
{
if(v[j].x>=TE)
{
TE=v[j].y;
sum++;
}
}
cout<<sum<<endl;
v.clear();
}
}