贪心策略:
最早结束的活动,优先安排。
把n个活动按照结束时间非减序排列。
一.输入的活动按照结束时间的非减序
#include <iostream>
using namespace std;
int a[100][100];
int main()
{
int n,i,j;
cout<<"请输入活动的数目:" ;
cin>>n; //n个活动
cout<<"请依次输入每个活动的起始时间和结束时间:"<<endl ;
for(i=0;i<n;i++)
cin>>a[i][0]>>a[i][1];
i=0;
int all=1; //总共可以安排的活动数
for(j=1;j<n;j++)
{
if(a[i][1]<a[j][0])
{
all++;
i=j;
}
}
cout<<all<<endl;
return 0;
}
二.输入的活动并未按照结束时间排序
#include <iostream>
using namespace std;
int a[100][100];
int main()
{
int n,i,j,q,temp;
cout<<"请输入活动的数目:" ;
cin>>n; //n个活动
cout<<"请依次输入每个活动的起始时间和结束时间:"<<endl ;
f