#P16957. [SCCPC 2026] 那一年的秘密基地

    ID: 16957 Type: RemoteJudge 2000ms 1024MiB Tried: 0 Accepted: 0 Difficulty: 8 Uploaded By: Tags>四川线段树树状数组2026省赛/邀请赛

[SCCPC 2026] 那一年的秘密基地

题目描述

那个夏天,大家在小镇的树荫下约定:一定要找到最适合的秘密基地。

小镇中有 nn 个地点,由 n−1n-1 条小路连接,任意两个地点之间都存在唯一一条简单路径。因此,这些地点和小路构成了一棵无根树,地点编号为 11 到 nn。

每天,大家会按照一个顺序依次来到小镇中的所有地点。这个顺序用一个长度为 nn 的排列 a1,a2,…,ana_1,a_2,\ldots,a_n 表示,其中 aia_i 表示第 ii 个被访问的地点。

如果选择地点 rr 作为秘密基地,就可以把整棵树以 rr 为根。此时,对于两个不同地点 x,yx,y,如果 xx 位于从 rr 到 yy 的简单路径上,则称 xx 是 yy 的祖先。

大家认为,如果某个地点先被访问,而它的某个祖先后被访问,就会产生一次“暴露风险”。形式化地,对于一个秘密基地 rr,定义危险度 fr(a)f_r(a) 为满足以下条件的二元组 (i,j)(i,j) 的数量:1≤i<j≤n1\le i<j\le n,且在以 rr 为根时,aja_j 是 aia_i 的祖先。

也就是说,fr(a)f_r(a) 表示在当前访问顺序下,有多少对地点满足:后出现的地点是先出现地点的祖先。

可是,时间不断流逝,大家的计划也会发生变化。接下来有 qq 次操作,每次操作给定一个整数 xx,表示交换访问顺序中相邻的两个地点 axa_x 和 ax+1a_{x+1}。

在所有操作前,以及每次操作后,你都需要重新选择一个最合适的秘密基地,使危险度尽可能小,并输出这个最小危险度。

输入格式

第一行包含两个整数 n,qn,q (1≤n,q≤2×1051\le n,q\le 2\times 10^5),分别表示地点数量和操作次数。

第二行包含 nn 个整数 a1,a2,…,ana_1,a_2,\ldots,a_n (1≤ai≤n1\le a_i\le n),表示初始访问顺序。保证 a1,a2,…,ana_1,a_2,\ldots,a_n 是一个排列。

接下来 n−1n-1 行,每行包含两个整数 ui,viu_i,v_i (1≤ui,vi≤n1\le u_i,v_i\le n),表示地点 uiu_i 和地点 viv_i 之间有一条小路。保证给出的 n−1n-1 条小路构成一棵树。

接下来 qq 行,每行包含一个整数 xix_i (1≤xi<n1\le x_i<n),表示一次操作,需要交换 axia_{x_i} 和 axi+1a_{x_i+1}。

输出格式

输出 q+1q+1 行。

第一行输出初始访问顺序对应的最小危险度。

之后第 ii 行输出第 i−1i-1 次操作后的最小危险度。

5 3
3 5 1 2 4
1 2
2 3
2 4
4 5
2
4
1
3
3
4
4