121 33 40 73 815 1915 2010 158 186 125 104 142 90 Sample Output5 Authorlcy解题思路: 根据结束时间排序(结束时间相同,根据开始时间排序),看过的与下一个比较,若下一个开始时间大于等于看过的结束时间,则此节目可看。(排序保证每次都取最合适的节目保证看到的节目最多)#include<iostream>#include<algorithm>using namespace std;struct node{ int s,e;}a[200];bool cmp(node x,node y){ if(x.e!=y.e) return x.e<y.e; else return x.s<y.s;}int main(){ int n,i; while(cin>>n,n!=0) { int sum=0,t; for(i=0;i<n;i++) cin>>a[i].s>>a[i].e; sort(a,a+n,cmp); t=-1; for(i=0;i<n;i++) { if(a[i].s>=t) { sum++; t=a[i].e; } } cout<<sum<<endl; } }
新闻热点
疑难解答