今天阶乘高精看一天也没看懂,我果然是个笨蛋,开水开水~
#include <stdio.h>
#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[]) {
int i,m,n,p;//用于循环的变量
int a,b;//a为马路长度,b为区域数目
int count;//计数
int left,right;//声明区间
int arr[10000] ;//声明数组
scanf("%d %d",&a,&b);
for(i=0; i<=a; i++) {
arr[i]=1;//给马路上每一个树赋值为一
}
for(n=1;n<=b;n++) {
scanf("%d %d",&left,&right); //输入区间个数
for(m=left; m<=right; m++) {//该区间的树都被取值为0
arr[m]=0;
}
}
for(p=0; p<=a; p++) {
if(arr[p]==1)
count++;
}
printf("%d",count);
return 0;
}
这题很简单,只要把没有砍掉树的区域都赋值为1,砍掉的话赋值为0就行,这样不用考虑区域重叠的问题,
好了菜鸡去睡觉了。。