#P12926. [POI 2022/2023 R2] 涂色游戏 / Gra w kolorowanie

[POI 2022/2023 R2] 涂色游戏 / Gra w kolorowanie

题目背景

翻译来自于 LibreOJ

题目描述

题目译自 XXX Olimpiada Informatyczna – II etap Gra w kolorowanie

涂色游戏的棋盘由 nn 个格子组成,编号从 11nn,部分格子相邻,恰有 n1n-1 对相邻格子,且任意两格子可通过相邻格子连通(棋盘构成一棵树)。

游戏由两名玩家参与。初始时,所有格子为白色,除一个格子涂为红色(属于玩家一)和另一个格子涂为蓝色(属于玩家二)。玩家轮流行动,每次选择一个自身颜色的格子 uu,并将其相邻的任一白色格子 vv 涂为同色。无法行动的玩家输掉游戏。

我们想知道,玩家一在哪些初始格子选择下能确保获胜,即无论玩家二如何行动,玩家一总有制胜策略。具体而言,给定格子集合 AABB,计算满足以下条件的不同格子对 (a,b)(a, b) 数量:初始红色格子 aAa \in A,初始蓝色格子 bBb \in B,且玩家一有制胜策略。

程序需处理集合 AABBqq 次更新,每次添加或移除一个格子,输出每次更新后满足条件的 (a,b)(a, b) 对数量。

输入格式

第一行包含一个整数 nn (1n500000)(1 \leq n \leq 500000),表示棋盘格子数。

接下来的 n1n-1 行,每行包含两个整数 u,vu, v (1u,vn)(1 \leq u, v \leq n),表示格子 uuvv 相邻。

下一行包含三个整数 SA,SB,qS_A, S_B, q (1SA,SBn,0q500000)(1 \leq S_A, S_B \leq n, 0 \leq q \leq 500000),分别表示集合 AABB 的初始大小及更新次数。

下一行包含 SAS_A 个互不相同的整数(属于 {1,,n}\{1, \ldots, n\}),表示集合 AA 的格子编号。

下一行包含 SBS_B 个互不相同的整数(属于 {1,,n}\{1, \ldots, n\}),表示集合 BB 的格子编号。

接下来的 qq 行,每行包含两个字符 z,tz, t 和一个整数 ww $(z \in \{\texttt{A}, \texttt{B}\}, t \in \{\texttt{+}, \texttt{-}\}, 1 \leq w \leq n)$,分别表示操作的集合(AABB)、操作类型(+\texttt{+} 为添加,-\texttt{-} 为移除)和格子编号 ww。保证每次操作有效(添加时 ww 不在集合,移除时 ww 在集合)。

集合 AABB 可不互斥,计数的 (a,b)(a, b) 对要求 aba \neq b

输出格式

输出 q+1q+1 行,第 ii 行包含一个整数,表示前 i1i-1 次更新后,满足条件的 (a,b)(a, b) 对数量。特别地,第一行表示初始集合 AABB 的结果。

6
1 2
2 3
3 4
3 5
5 6
1 2 1
1
5 6
A + 2
1
3

提示

样例 1 解释

初始时,A={1},B={5,6}A=\{1\}, B=\{5, 6\},可选初始对 (a,b)(a, b)(1,5)(1, 5)(1,6)(1, 6)

  • (1,5)(1, 5):玩家一涂格子 22,玩家二涂格子 33,玩家一无格子可涂,输。
  • (1,6)(1, 6):玩家一涂格子 22,玩家二涂格子 55,玩家一涂格子 33,玩家二无格子可涂,输。
    (1,6)(1, 6) 使玩家一获胜,输出 11

更新后,A={1,2},B={5,6}A=\{1, 2\}, B=\{5, 6\},玩家一在 (1,5),(2,5),(2,6)(1, 5), (2, 5), (2, 6) 有制胜策略,输出 33

附加样例

  1. n=10,q=0n=10, q=0,格子 i>1i>1 连接格子 11A={1,2,3},B={4,5,6}A=\{1, 2, 3\}, B=\{4, 5, 6\},答案为 99
  2. n=200,q=0n=200, q=0,格子 i>1i>1 连接格子 i1i-1A={1,2,3},B={1,2,3}A=\{1, 2, 3\}, B=\{1, 2, 3\},答案为 33
  3. n=2000,q=0n=2000, q=0,格子 i>1i>1 连接格子 i/2\lfloor i/2 \rfloorA=B={1,2,,n}A=B=\{1, 2, \ldots, n\},答案为 24119482411948
  4. n=500000,q=0n=500000, q=0,格子 i>1i>1 连接格子 i/2\lfloor i/2 \rfloorA=B={1,2,,n}A=B=\{1, 2, \ldots, n\},答案为 150744198828150744198828
  5. n=500000,q=1n=500000, q=1,格子 i>1i>1 连接格子 i1i-1A={1,2,3},B={1}A=\{1, 2, 3\}, B=\{1\},更新移除 BB 的格子 11
  6. n=500000,q=1n=500000, q=1,格子 i>1i>1 连接格子 i1i-1A={1,2,3},B={1,2,3}A=\{1, 2, 3\}, B=\{1, 2, 3\},更新移除 BB 的格子 33

详细子任务附加限制及分值如下表所示。

子任务编号 附加限制 分值
11 q=0,n10q=0, n \leq 10 88
22 q=0,n200q=0, n \leq 200 1010
33 q=0,n2000q=0, n \leq 2000 1818
44 q=0q=0 3030
55 z=Bz=\texttt{B} 1616
66 无附加限制 1818