这题调了将近 5h ,交了三十几次才过。把我调试这道题代码的经验分享给后人。
swap(tr[rt<<1].lmax0,tr[rt<<1|1].lmax1);
swap(tr[rt<<1].rmax0,tr[rt<<1|1].rmax1);
swap(tr[rt<<1].sum0,tr[rt<<1|1].sum1);
左儿子和右儿子换显然是不合理的吧?但这代码竟然能过样例,甚至还过了一个数据点。如果您只过了#11,请一定要好好校对左儿子右儿子是否对齐。
如果以上做法都没有解决,不排除是代码思路问题的可能。
调了 5h 终于过了555