标签:
| Time Limit: 1000MS | Memory Limit: 65536K | |
| Total Submissions: 45758 | Accepted: 13250 |
Description
Input
Output

Sample Input
1 5 1 4 2 6 8 10 3 4 7 10
Sample Output
4
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<cstdlib>
#include<algorithm>
#include<string>
using namespace std;
int tt,n;
struct node
{
int x,y,ans;
}e[10010];
void dfs(int l,int r,int k,int c)
{
while(k<n&&(l>e[k].y||r<e[k].x))
k++;
if(k>=n)
{
e[c].ans+=r-l+1;
return ;
}
if(l<e[k].x)
{
dfs(l,e[k].x-1,k+1,c);
}
if(r>e[k].y)
{
dfs(e[k].y+1,r,k+1,c);
}
}
int main()
{
scanf("%d",&tt);
while(tt--)
{
int sum=0;
memset(e,0,sizeof(e));
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d%d",&e[i].x,&e[i].y);
}
for(int i=n-1;i>=0;i--)
{
dfs(e[i].x,e[i].y,i+1,i);
}
for(int i=0;i<n;i++)
if(e[i].ans>0)
sum++;
printf("%d\n",sum);
}
return 0;
}
标签:
原文地址:http://www.cnblogs.com/a972290869/p/4257786.html