贪心法----------区间调度问题
本题的关键是从可选择方法中选择哪一类最优化
答案是结束时间最早的一类
源代码
#include<iostream>
#include<algorithm>
#include<cstdio>
#define maxn 100100
using namespace std;
struct w
{
int endd,beginn;
};
bool cmp(w A,w B)
{
return A.endd<B.endd;
}
int main()
{
int t=-1,ans=0,n;
w work[maxn];
cin>>n;
for(int i=0;i<n;i++)
cin>>work[i].beginn;
for(int i=0;i<n;i++)
cin>>work[i].endd;
sort(work,work+n,cmp);
for(int i=0;i<n;i++)
{
if(work[i].beginn>t)
{
t=work[i].endd;
ans++;
}
}
cout<<ans<<endl;
return 0;
}
别趴下,熬过黑夜就是黎明
浙公网安备 33010602011771号