0分求助大佬们,

P1047 [NOIP2005 普及组] 校门外的树

1. ```cpp ``` #include <stdio.h> int main(){ int a[10001]={0},b,i,n,x1,x2,j; scanf("%d %d",&b,&n); for(i=0;i<=b;i++){ a[i]=1; } for(i=1;i<=n;i++){ scanf("%d %d",&x1,&x2); for(j=x1;j<=x2;j++){ a[j]=0; } x1=0; x2=0; j=0; } for(i=0;i<=10001;i++){ if(a[i]){ j++; } } printf("%d",j); return 0; }
by 最菜的一笔 @ 2020-01-31 17:19:09


刚刚不太会排版,又重新试了一下
by 最菜的一笔 @ 2020-01-31 17:19:34


思路 1.先假设马路上没有树也不考虑其他影响,即将数组元素全部初始化为0; 2.不考虑地铁时,将有树的路段标记为1; 3.将与地铁重合路段标记为0; 4.统计马路上依然为1的点,即为剩余树木的数量
by 最菜的一笔 @ 2020-01-31 17:26:24


```cpp for(i=0;i<=10001;i++){ if(a[i]){ j++; } } ``` 数组越界,改为 ```cpp for(i=0;i<=b;i++) ``` 顺便建议整改码风
by Light_Cone @ 2020-01-31 17:43:57


@[元初](/user/120484) 谢谢大佬,问题解决了
by 最菜的一笔 @ 2020-02-03 17:04:27


|