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