动态开点线段树样例不对求助

P3372 【模板】线段树 1

别的不说,谁让你开八倍空间了 两倍空间就可以,这是动态开点的优势
by Masna_Kimoyo @ 2024-01-02 23:26:21


这 build 给我看懵了。
by cmaths @ 2024-01-03 07:08:23


@[cmaths](/user/300098) +1
by Bingxiu @ 2024-01-03 07:08:56


@[tianyu_awa](/user/716260) 你家 `build` 是一个一个节点加的(抽象)
by Bingxiu @ 2024-01-03 07:09:53


似乎看起来没什么问题???
by Bingxiu @ 2024-01-03 07:15:06


@[tianyu_awa](/user/716260) ?样例哪里不对了,我测了一下没问题啊
by Bingxiu @ 2024-01-03 07:16:42


好像也没问题,毕竟是动开线段树,不过为什么不直接用 add
by cmaths @ 2024-01-03 07:20:21


@[tianyu_awa](/user/716260) 虽然我是蒟蒻,但是我认为整个程序中只build建树一次就可以了 ``` void builded (int u, int l, int r) { int x = u << 1, y = u << 1 | 1; tr[u].l = l, tr[u].r = r; if(l == r) { tr[u].he = a[l]; return; } int mid = (l + r) >> 1; builded(x, l, mid); builded(y, mid + 1, r); tr[u].he = tr[x].he + tr[y].he; //he 从tr[u].l到tr[u].r整个区间的和 return; } ``` 这样写的话,只需要在询问前建树一次(build(1, 1, n))
by 2Bxzj @ 2024-01-03 10:15:14


@[Bingxiu](/user/676498) ?
by tianyu_awa @ 2024-01-03 16:28:39


@[Bingxiu](/user/676498) 好吧是我看错了
by tianyu_awa @ 2024-01-03 16:31:19


|