注意所有线段树内操作的下标识 dfn[u]!!!
还有,输入点权时也一样:
错误写法:
for (int i = 1; i <= n; ++ i) cin >> w[i];
正确写法:
for (int i = 1; i <= n; ++ i) cin >> w[dfn[i]];
还有 CHANGE 操作:
错误写法:
if (opt == "CHANGE") {
segtree.update(1, 1, n, u, v);
}
正确写法:
if (opt == "CHANGE") {
segtree.update(1, 1, n, dfn[u], v);
}