题解
刚开始看这道题的时候,就想到用线段树,当然线段树肯定能解决这个问题,不过考虑了一会儿,觉得这个题目贪心的思想就能过了,而且时间是线性的,主要是先将区间按左值排序
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;
			}
			
		}
© 2015 HUST ACMICPC TEAM. All Right Reserved.