build 函数里面也要 pushup (即用两个儿子节点的信息更新父亲节点的信息)
对应的就是你代码里面的这行:
`t[pos].val=t[pos*2].val+t[pos*2+1].val;`
by 半只蒟蒻 @ 2023-10-20 19:20:54
你查询没有下传懒标记
by Nobelium_255 @ 2023-10-20 19:21:17
@[jeffstart](/user/482998) lz 是八倍空间啊,没问题
by 半只蒟蒻 @ 2023-10-20 19:21:32
@[Nobelium_255](/user/473635) 可能modify的时候也得推标记?我不确定
by 半只蒟蒻 @ 2023-10-20 19:22:14
哦,收回上句话。应该是你完全没有下传过懒标记
by Nobelium_255 @ 2023-10-20 19:22:47
@[半只蒟蒻](/user/112049) 都得推,我刚刚没看见
by Nobelium_255 @ 2023-10-20 19:23:24
而且这个标记下推感觉写的怪怪的
`t[pos*2].val+=(t[pos*2].r-t[pos*2+1].l+1)*t[pos].tag;`
应为
`t[pos*2].val+=(t[pos*2].r-t[pos*2].l+1)*t[pos].tag;`
by 半只蒟蒻 @ 2023-10-20 19:23:42
@[半只蒟蒻](/user/112049) 只能说乍一看好像挺正常,细细看全是问题
by Nobelium_255 @ 2023-10-20 19:24:57
而且可能区间修改的参数 `d` 也得开成 `long long` 类型的,毕竟题目没有明确说明
by 半只蒟蒻 @ 2023-10-20 19:26:00
@[半只蒟蒻](/user/112049) `query` 函数的返回类型改成 `long long`
by 半只蒟蒻 @ 2023-10-20 19:26:48