CF1975E.Chain Queries

提高+/省选-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

给定一棵有 nn 个顶点的树,顶点编号为 11 到 nn。初始时,每个顶点被染成白色或黑色。

你需要进行 qq 次操作:

  • “u” —— 翻转顶点 uu 的颜色(如果原来是白色,则变为黑色;如果原来是黑色,则变为白色)。

每次操作后,你需要回答所有黑色顶点是否构成一条链。也就是说,是否存在两个黑色顶点,使得它们之间的简单路径经过且仅经过所有黑色顶点。特别地,如果只有一个黑色顶点,也视为构成一条链。如果没有黑色顶点,则不构成链。

输入格式

每个测试点包含多组测试用例。第一行包含一个整数 tt(1≤t≤1041\leq t\leq 10^4),表示测试用例的数量。

每个测试用例的第一行包含两个整数 nn 和 qq(1≤n,q≤2⋅1051\leq n,q\leq 2\cdot 10^5)。

第二行包含 nn 个整数 c1,c2,…,cnc_1,c_2,\ldots,c_n(ci∈{0,1}c_i\in\{\mathtt{0},\mathtt{1}\}),表示每个顶点的初始颜色。cic_i 表示顶点 ii 的颜色,0\mathtt{0} 表示白色,1\mathtt{1} 表示黑色。

接下来 n−1n-1 行,每行包含两个整数 xix_i 和 yiy_i(1≤xi,yi≤n1\leq x_i,y_i\leq n),表示在顶点 xix_i 和 yiy_i 之间有一条边。保证这些边构成一棵树。

接下来的 qq 行,每行包含一个整数 uiu_i(1≤ui≤n1\leq u_i\leq n),表示需要翻转顶点 uiu_i 的颜色。

保证所有测试用例中 nn 和 qq 的总和分别不超过 2⋅1052\cdot 10^5。

输出格式

对于每次操作,如果黑色顶点构成一条链,输出 “Yes”;否则输出 “No”。

你可以用任意大小写组合输出 “Yes” 和 “No”(例如 "yEs"、"yes"、"Yes"、"YES" 都被认为是肯定回答)。

输入输出样例

  • 输入#1

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

    输出#1

    No
    No
    Yes
    Yes
    No
  • 输入#2

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

    输出#2

    Yes
    No
    Yes
    Yes
    Yes
    Yes
    No
    No
    Yes

说明/提示

在第二个测试用例中,顶点的颜色变化如下:

初始树:

第一次操作翻转顶点 44 的颜色:

第二次操作翻转顶点 33 的颜色:

第三次操作翻转顶点 22 的颜色:

第四次操作翻转顶点 55 的颜色:

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页