P4751 【模板】动态 DP(加强版)
题目背景
树剖常数小!跑不满!
shadowice1984 为了向你证明他能卡树剖并且会卡树剖从而出了这道毒瘤题。
保证答案均在 `int` 范围内。
然后就被离线算法针对了……
因此这道题变成了强制在线。
题目描述
同 [P4719](https://www.luogu.com.cn/problem/P4719)。
给定一个 $n$ 个点的带点权树,进行 $m$ 次修改点权的操作。
你需要在每次修改之后输出树上最大带权独立集的权值之和。
输入格式
同 [P4719](https://www.luogu.com.cn/problem/P4719)。
第一行两个正整数 $n$,$m$ 表示树的点数和总操作个数
第二行 $n$ 个整数 $V_1,\dots,V_n$ 表示每个点的点权。
接下来 $(n - 1)$ 行,每行两个整数 $u, v$,表示存在一条连接 $u$ 与 $v$ 的边。
接下来 $m$ 行每行两个整数 $x$,$y$ 表示将 $x$ 的点权修改为 $y$。
对于第 $1$ 行,$x$ 即为被操作的点的编号。
对于第 $2$ 到 $m$ 行,被操作的点的编号 $=x\oplus lastans$。
其中 $lastans$ 是上一次操作后输出的答案,$\oplus$ 表示按位异或操作。
输出格式
输出 $m$ 行,第 $i$ 行表示表示第 $i$ 次操作之后树上最大带权独立集的权值和。
说明/提示
数据范围 $n \leq 1 \times 10^6$,$m \leq 3 \times 10^6$。保证任意时刻各点点权的绝对值 $\leq 100$。
时限为标程的二倍,如果卡常数的话请使用 `int` 类型。