题目hdu 2037
题目描述:给你n个节目开始的时间和结束的时间,询问你最多能完整的看完多少个节目。
解:贪心,以结束时间排序,那么取a0.end作为起点必然是最好的,然后去查找ai.start >= 上一个节目的结束时间 ,且结束时间最小(早)的。然后cnt一下就ok了。
代码:
#include<bits/stdc++.h> using namespace std; bool cmp(pair<int,int>a,pair<int,int> b) { return a.second<b.second; } int main() { int n; while(cin>>n&&n) { pair<int,int>a[101]; for(int i=0;i<n;i++)cin>>a[i].first>>a[i].second; sort(a,a+n,cmp); int ans=1; int ed=a[0].second; int i=0; while(i<n) { i++; if(a[i].first>=ed){ans++;ed=a[i].second;} } cout<<ans<<endl; } return 0; }
浙公网安备 33010602011771号