POJ 2528

 1 #include<iostream>
 2 #define MAXN 10001
 3 using namespace std;
 4 
 5 struct _node
 6 {
 7     int b;
 8     int e;
 9 };
10 
11 void discreat(int l,int r,int index);
12 _node _m[MAXN];
13 int n;
14 bool boo;
15 int main()
16 {
17     //freopen("acm.acm","r",stdin);
18     int test;
19     int i;
20     int ans;
21     //cin>>test;
22     scanf("%d",&test);
23     while(test --)
24     {
25         ans = 0;
26         //cin>>n;
27         scanf("%d",&n);
28         for(i = 0; i < n; ++ i)
29         {
30             //cin>>_m[i].b>>_m[i].e;
31             scanf("%d%d",&_m[i].b,&_m[i].e);
32         }
33         for(i = 0; i < n; ++ i)
34         {
35             boo = false;
36             discreat(_m[i].b,_m[i].e,i+1);
37             if(boo)
38                 ++ ans;
39         }
40         cout<<ans<<endl;
41     }
42 }
43 
44 void discreat(int l,int r,int index)
45 {
46     if(index == n)
47     {
48         boo = true;
49         return;
50     }
51     if(l >= _m[index].b && r <= _m[index].e)
52     {
53         return;
54     }
55     if(r < _m[index].b || l > _m[index].e)
56     {
57         discreat(l,r,index + 1);
58         return;
59     }
60     if(l < _m[index].b)
61     {
62         discreat(l,_m[index].b - 1,index + 1);
63         //return 0;
64     }
65     if(r > _m[index].e)
66     {
67         discreat(_m[index].e + 1,r,index + 1);
68     }
69     return;
70 }
原文地址:https://www.cnblogs.com/gavinsp/p/4568577.html