调试一中午还是只绿了一个!大佬救救我吧!

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

最后一个 `for` 为啥直到 `L` 啊?应该改成 `for(int i=0;i<10000;i++)`
by Steve_xh @ 2023-06-05 12:40:11


@[luogu3213](/user/912805) 你的 `L` 存的是有多少段,但是你的 `l[]` 数组是按下标来存的
by Steve_xh @ 2023-06-05 12:42:15


@[Steve_xh](/user/639198) 因为不一定有10000棵树啊!如果我输入L棵树 那就只有for(int i=0;i<L;i++)了啊
by luogu3213 @ 2023-06-05 12:45:34


我这样写绿3个 ``` #include <bits/stdc++.h> using namespace std; int main() { int a[100001]; int l,m; cin>>l>>m; int u,v; int sum; for(int i=0;i<l;i++){ a[i]=1; } while(m!=0){ cin>>u>>v; for(int i=u;i<=v;i++){ a[i]=0; } m--; } for(int i=0;i<l;i++){ if(a[i]!=0){ sum++; } } cout<<sum<<endl; return 0; } ```
by OURUO @ 2023-06-05 12:47:13


@[OURUO](/user/889728) for(int i=0;i<l;i++)改成 for(int i=0;i<=l;i++)
by luogu3213 @ 2023-06-05 12:49:56


@[luogu3213](/user/912805) 绿绿的一片……
by OURUO @ 2023-06-05 12:53:35


@[luogu3213](/user/912805) 你还没懂?你的数组存的是每一米有没有树,怎么可能最多才L米呢?要把整一段都遍历呀
by Steve_xh @ 2023-06-05 13:23:58


@[luogu3213](/user/912805) 你改了之后看看有没有对先吧!
by Steve_xh @ 2023-06-05 13:24:53


|