NYOJ 管闲事的小明

这个是结构体写的WS 了  一直不知道错哪里

 1  
 2 #include<stdlib.h>
 3 #include<stdio.h>
 4 #include<string.h>
 5 #include<algorithm>
 6 using namespace std;
 7 
 8 struct gl
 9 {
10        int li;
11        int ri;
12 }d[10010];
13 int cmp( gl  x, gl y)
14 {
15     if(x.li!=y.li)
16     return x.li<y.li;
17     return x.ri<y.ri;
18 }
19 int  main()
20 {
21      int T;
22      scanf("%d",&T);
23      while(T--)
24      {
25        memset(d,0,sizeof(d));
26        int  i,a,n,s,t1,t;
27        scanf("%d %d",&a,&n);
28        for(i=0;i<n;i++)
29        {
30        scanf("%d %d",&d[i].li , &d[i].ri);
31        if(d[i].li>d[i].ri)
32        
33            {
34            t=d[i].li;
35            d[i].li=d[i].ri;
36            d[i].ri=t;
37            }
38        }
39        sort(d,d+n,cmp);
40        s = d[0].ri-d[0].li+1;
41        t1=d[0].ri;
42        for(i=1;i<n;i++)
43        {
44          if( d[i].li > t1)
45          {  
46              t1=d[i].ri;
47              s+=d[i].ri-d[i].li+1;  
48              continue; 
49          }
50          if( d[i].li<=t1 && d[i].ri>t1 )        
51          {
52          t1=d[i].ri;
53          s+=d[i].ri-d[i-1].ri;
54          } 
55          
56        }
57        printf("%d\n",a+1-s);
58      }
59    return 0;
60 }
61         

 

 

 

 

 

这个是AC的   标记法

 1  
 2 #include<stdio.h>
 3 #include<string.h>
 4 int main()
 5 {
 6     int a[10010];
 7     int n,m,t,i,x,y,j,s;
 8     scanf("%d",&n);
 9     while(n--)
10     {
11         memset(a,0,sizeof(a));
12         scanf("%d%d",&m,&t);
13         for(i=0;i<t;i++)
14         {
15             scanf("%d%d",&x,&y);
16             /*if(x>y)
17             {
18                 j=x;
19                 x=y;
20                 y=j;
21             }*/
22             for(;x<=y;x++)
23             a[x]++;
24         }
25         for(s=i=0;i<=m;i++)
26         if(a[i]!=0) s++;
27         printf("%d\n",m-s+1);
28     }
29     return 0;
30 }
31             

 

 

posted @ 2013-08-20 10:50  hpu张亚飞  阅读(177)  评论(0编辑  收藏  举报