警示后人

P3372 【模板】线段树 1

zhaisx @ 2024-07-29 08:14:27

定义宏时一定不能写成这样:

#define gettag(u, l, r, a) \
    node[u].add += a;      \
    node[u].sum += a * (r - l + 1)

当传入 l = mid + 1 时会出现 node[u].sum += a * (r - mid + 1 + 1) 的现象。需改为:

node[u].sum += a * (r - (l) + 1)

by Tomorrow_YYX @ 2024-07-29 08:19:29

@zhaisx 可是我总觉得不给l加括号也没问题啊,你是不是还有别的地方出错了?


by Tomorrow_YYX @ 2024-07-29 08:25:52

哦没事了我是rz


|