先将自己喜欢看的节目排序,然后根据,每个节目开始结束的时间进行比较,求出最优解!
代码如下:
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
struct program
{
int head;
int fina;
#include<vector>
#include<algorithm>
using namespace std;
struct program
{
int head;
int fina;
};
bool cmp(const program&m1,const program&m2)
{
bool cmp(const program&m1,const program&m2)
{
return m1.fina<m2.fina;
}
int main()
{
int n;
while(cin>>n&&n!=0)
{
vector<program>v;
program temp;
for(int i=0;i<n;i++)
{
cin>>temp.head>>temp.fina;
v.push_back(temp);
}
sort(v.begin(),v.end(),cmp);
int k=0;
int result=1;
for(int i=1;i<v.size();i++)
{
if(v[k].fina<=v[i].head)
{
k=i;
result++;
}
}
cout<<result<<endl;
}
int main()
{
int n;
while(cin>>n&&n!=0)
{
vector<program>v;
program temp;
for(int i=0;i<n;i++)
{
cin>>temp.head>>temp.fina;
v.push_back(temp);
}
sort(v.begin(),v.end(),cmp);
int k=0;
int result=1;
for(int i=1;i<v.size();i++)
{
if(v[k].fina<=v[i].head)
{
k=i;
result++;
}
}
cout<<result<<endl;
}
return 0;
}
}