题解
刚开始看这道题的时候,就想到用线段树,当然线段树肯定能解决这个问题,不过考虑了一会儿,觉得这个题目贪心的思想就能过了,而且时间是线性的,主要是先将区间按左值排序 struct node { int x; int y; }f[50001]; bool cmp(node xx,node yy) { return (xx.x)<(yy.x); } 再逐个查找 for (int i=1;i<n;i++) { if (f[i].x>endd) { cout<<begin<<" "<<endd<<endl; begin=f[i].x; endd=f[i].y; } if (f[i].x<=endd && endd<f[i].y) { endd=f[i].y; } }