这个题目,恩,又是让我很懵逼的一道,整体思路的话就是从时间长短排序,然后考虑衔接最短的,或者反过来也OK的,我又想用struct这个结构体,然而我只能给出思路和小部分细节,真是心塞塞 啊。
#include<cstdio> #include<algorithm> using namespace std; struct tv {int be,end; }pro[105]; int cmp(const tv &a,const tv &b) { if(a.be==b.be) return a.end<b.end; else return a.be<b.be; } int main() { int n; while(scanf("%d",&n),n) { for(int i=0;i<n;i++) scanf("%d%d", &pro[i].be, &pro[i].end); sort(pro, pro + n, cmp); int bd,sum=1; bd=pro[0].end; for(int i=0;i<n;i++) { if(bd<=pro[i].be) { sum++; bd=pro[i].end; } else if(pro[i].end<bd) { bd=pro[i].end; } } printf("%d ",sum); } return 0; }