线段树维护哈希的警醒

今天在 CF464E 中又犯了这个煞笔错误,记录下来:

考虑线段树维护 hash 的时候,query 操作是区间查询,将左边的乘上右边长度再加右边。

这个 “右边长度” 是多少呢?浅画一个跨过中点的区间可以发现是 R - mid 。

L,R 是询问的区间。

但是你考虑了 R > r 的情况了吗? 这种情况就会导致多乘,答案错误。

所以应该取 \(\min(R,r)\) 。这也警示我们画示意图要考虑所有情况。

posted @ 2024-02-03 08:26  The_Last_Candy  阅读(14)  评论(0编辑  收藏  举报