题目大意:有N对区间现在剔除一些区间,这些区间被另一些区间完全包含,如,Ai<Bi, Bj<Aj, A完全包含B,求出来这样被包含的区间个数。
分析:首先按照第一个数字先进行一下排序,然后剩下的就是简单的判断更新了....................
代码如下:
======================================================================================================
#include<stdio.h>
#include<vector>
#include<algorithm>
using namespace std; const int MAXN = ; struct node
{
int x, y;
friend bool operator <(const node &t1, const node &t2)
{
return t1.x < t2.x;
}
}date[MAXN]; int main()
{
int N; scanf("%d", &N); for(int i=; i<N; i++)
scanf("%d%d", &date[i].x, &date[i].y);
sort(date, date+N); int ans=, x=-, t1=, t2=; for(int i=; i<N; i++)
{
if(x != date[i].x)
{
if(t1 < t2)
t1 = t2;
t2 = date[i].y;
x = date[i].x;
} if(t1 > date[i].y)
ans++;
t2 = max(t2, date[i].y);
} printf("%d\n", ans); return ;
}