1 /* 2 注意:输入L,则共有L+1棵树。 3 思路: 4 用数组a[L+1],赋初值为1 ; 5 输入一个区间都将a中区间内的元素置值0; 6 统计a中非0元素个数即答案。 7 */ 8 #include<stdio.h> 9 int main(){ 10 int L,M; 11 int ans=0;//表最后剩下的数 12 scanf("%d%d",&L,&M); 13 int tree[L+1];//输入L则有L+1棵树 14 for(int i=0;i<L+1;i++){ 15 tree[i]=1; 16 } 17 for(int i=0;i<M;i++){ 18 int a,b;//表示每个起点和终点 19 scanf("%d %d",&a,&b); 20 for(int j=a;j<=b;j++){ 21 tree[j] = 0; 22 } 23 } 24 for(int i=0;i<L+1;i++){ 25 if(tree[i]){ 26 ans++; 27 } 28 } 29 printf("%d",ans); 30 return 0; 31 }
原文:http://www.cnblogs.com/panweiwei/p/6618972.html