急急急,请帮忙找错

P1318 积水面积

我暂时找到了局部错误: - `l=r=0`应放在`if(l && r)` 里; - 同时,`else continue`没啥用可以删去; 具体为: ```cpp for(int i=1;i<=n;i=flag?r:i+1) { flag=false; if(h[i]!=0) { if(!l) l=i; else if(!r) r=i; } if(l && r) { flag=true; if(r-l>1) for(int j=l+1;j<=r-1;j++) ans++; l=r=0; } } ```
by Zwjoey @ 2022-08-23 07:57:27


经过我们机房一位大犇几分钟的调试,终于找到了: - 虽然每次累加区间时, `flag=true` , $i$ 就会从 $r$ 开始而不是 $i(r)+1 $ ,但每次我都在进入下层循环时 `l=r=0` ,导致死循环; - ∴要引入一个中间变量 $mid$ ,在 $r$ 清零前 `mid=r` 并将三目运算改为 `i=flag?mid:i+1` 。 学到了调试方法。
by Zwjoey @ 2022-08-23 08:14:29


|