线段树维护哈希的警醒
今天在 CF464E 中又犯了这个煞笔错误,记录下来:
考虑线段树维护 hash 的时候,query 操作是区间查询,将左边的乘上右边长度再加右边。
这个 “右边长度” 是多少呢?浅画一个跨过中点的区间可以发现是 R - mid 。
L,R 是询问的区间。
但是你考虑了 R > r 的情况了吗? 这种情况就会导致多乘,答案错误。
所以应该取 \(\min(R,r)\) 。这也警示我们画示意图要考虑所有情况。
今天在 CF464E 中又犯了这个煞笔错误,记录下来:
考虑线段树维护 hash 的时候,query 操作是区间查询,将左边的乘上右边长度再加右边。
这个 “右边长度” 是多少呢?浅画一个跨过中点的区间可以发现是 R - mid 。
L,R 是询问的区间。
但是你考虑了 R > r 的情况了吗? 这种情况就会导致多乘,答案错误。
所以应该取 \(\min(R,r)\) 。这也警示我们画示意图要考虑所有情况。