线段树超时?打了标记!

P3372 【模板】线段树 1

查询区间不需要查到叶子节点上吧
by gghack_Nythix @ 2023-10-20 10:08:22


``` if(l == qr && r == qr) return seg[id].val.sum; ``` 这都查到叶子节点了吧
by Buried_Dream @ 2023-10-20 10:09:36


@[Buried_Dream](/user/396974) 仔细看他的写法,不会查到叶子上。 TLE 的问题我不清楚,但是 ```cpp if(qr <= mid) return modify(id * 2, l, mid, ql, qr, t); else if(ql > mid) return modify(id * 2 + 1, mid + 1, r, ql, qr, t); else { modify(id * 2, l, mid, ql, mid, t); modify(id * 2 + 1, mid + 1, r, mid + 1, qr, t); } update(id); ``` 会导致你有时候不 `update`,答案错误。
by kyEEcccccc @ 2023-10-20 10:25:52


@[Kaedehara_zgb](/user/534953)
by kyEEcccccc @ 2023-10-20 10:26:20


@[Retired_kyEEcccccc](/user/312811) 为什么他这个会有的时候不 update,退役人看不出来了/kk
by Buried_Dream @ 2023-10-20 10:35:52


@[Retired_kyEEcccccc](/user/312811) 就只有超时没有答案错误
by Kaedehara_zgb @ 2023-10-20 10:36:24


@[Buried_Dream](/user/396974) 上两行 `return` 了
by kyEEcccccc @ 2023-10-20 10:42:36


@[Retired_kyEEcccccc](/user/312811) ``` l == qr && r == qr ``` 那 l应该等于r吧,我感觉查到叶子节点了
by Buried_Dream @ 2023-10-20 10:42:55


@[Retired_kyEEcccccc](/user/312811) 了解,改好了,因为modify是复制query的忘记删return了。但还是超的![结果]![](https://cdn.luogu.com.cn/upload/image_hosting/do8woto5.png) O2开了也是这样
by Kaedehara_zgb @ 2023-10-20 10:44:27


@[Retired_kyEEcccccc](/user/312811) 我大概明白了,他TLE的原因就是因为都查到叶子节点了,然后没update所以答案错了
by Buried_Dream @ 2023-10-20 10:45:12


| 下一页