[Ynoi2001] 梦想歌

Luogu
IDLGP9336
Time2000ms
Memory128MB
DifficultyP7
2001O2优化Ynoi
给定树上 $n$ 个点,每个点有一个点权 $v_i$。 在此题面中,启发式合并指,递归地进行从底往上的集合合并,每一次以集合的点权和为键值,将权值和更小的集合中的点加入更大的权值和的集合中,初始时每个点集合为该点本身。 同时我们钦定如下的枚举顺序:假设已经递归进行了所有子树的合并,合并当前层节点时从子树的根开始,将儿子们按编号大小从小到大排序,每一次合并两两集合得到子树的集合。 同时,若两个集合的权值和相同,以集合中最小节点深度为第二关键字进行比较(深度大的向深度小的合并)。 钦定该树的根为 $1$。给出以下查询和修改操作: ```1 x``` 表示查询当前以 $x$ 为根的子树进行启发式合并后,没有进行「合并入另外一个集合」操作的节点权值。 ```2 x d```将第 $x$ 个点的节点权值加 $d$。 ## Input 第一行两个整数 $n,q$,分别表示树的大小和操作次数。 第二行 $n$ 个整数 $a_1,a_2,\cdots,a_n$,其中 $a_i$ 表示结点 $i$ 的初始权值。 第三行 $n-1$ 个整数 $p_2,p_3,\cdots,p_n$,其中 $p_i$ 表示以结点 $1$ 为根时,结点 $i$ 的父亲。 接下来 $q$ 行,每行格式形如 `1 x` 或 `2 x d`,分别对应题目描述中的两种操作。 ## Output 对于每个类型为 $1$ 的操作,输出一行一个整数,表示所求答案。 [samples] ## Background &emsp;子供の頃の夢は &emsp;孩童时期的梦想 &emsp;色褪せない落書きで &emsp;是永不褪色的涂鸦 &emsp;いつまでも描き続けられた &emsp;无论何时都不停描绘着 &emsp;願う未来へとつながる &emsp;与理想中的未来紧紧相连 &emsp;鐘が鳴る音 &emsp;钟声鸣响 &emsp;遠くから聞こえてくる &emsp;即使在远方也听得见 &emsp;素直な心に &emsp;传达到坦率的内心之中 &emsp;届いては響いてる &emsp;随之回响 &emsp;光りは &emsp;化作七彩的 &emsp;七色に変わって &emsp;光芒 ![](https://tuchuangs.com/imgs/2023/03/19/e23d3bd048e193de.jpg) ## Note Idea:FutaRimeWoawaSete,Solution:zhoukangyang,Code:Rainybunny,Data:FutaRimeWoawaSete/Rainybunny 对于 $100\%$ 的数据,$1\le n,q\le2\times10^5$,$1\le p_i<i$;操作给出的 $x\in[1,n]$,$d\in[-10^{18},10^{18}]$;在任意时刻 $a_x\ge 1$ 且 $\sum_{x=1}^na_x\le10^{18}$。
Samples
Input #1
5 10
2 10 1 10 3
1 2 3 2
2 1 3
1 3
1 5
2 3 5
2 3 2
1 5
2 5 6
1 3
2 5 -1
2 3 0
Output #1
10
3
3
10
API Response (JSON)
{
  "problem": {
    "name": "[Ynoi2001] 梦想歌",
    "description": {
      "content": "给定树上 $n$ 个点,每个点有一个点权 $v_i$。 在此题面中,启发式合并指,递归地进行从底往上的集合合并,每一次以集合的点权和为键值,将权值和更小的集合中的点加入更大的权值和的集合中,初始时每个点集合为该点本身。 同时我们钦定如下的枚举顺序:假设已经递归进行了所有子树的合并,合并当前层节点时从子树的根开始,将儿子们按编号大小从小到大排序,每一次合并两两集合得到子树的集合。 同时,若两个",
      "description_type": "Markdown"
    },
    "platform": "Luogu",
    "limit": {
      "time_limit": 2000,
      "memory_limit": 131072
    },
    "difficulty": {
      "LuoguStyle": "P7"
    },
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "LGP9336"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "给定树上 $n$ 个点,每个点有一个点权 $v_i$。\n\n在此题面中,启发式合并指,递归地进行从底往上的集合合并,每一次以集合的点权和为键值,将权值和更小的集合中的点加入更大的权值和的集合中,初始时每个点集合为该点本身。\n\n同时我们钦定如下的枚举顺序:假设已经递归进行了所有子树的合并,合并当前层节点时从子树的根开始,将儿子们按编号大小从小到大排序,每一次合并两两集合得到子树的集合。\n\n同时,若两个...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments