AT_abc411_f.[ABC411F] Contraction

提高+/省选-

通过率:0%

AC君温馨提醒

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

题目描述

给你一个 NN 个点、MM 条边的无向图 G0G_0,第 ii 条边连接结点 UiU_i 和结点 ViV_i。

高桥有一个图 GG 和 NN 个棋子,初始时 G=G0G=G_0,ii 号棋子放在结点 ii。

他要按顺序执行 QQ 次操作。第 ii 次操作将给出一个边的编号 XiX_i,并执行以下操作:

  • 如果棋子 UXiU_{X_i} 和 VXiV_{X_i} 在不同结点上并且这两个结点在 GG 中由一条边连接,那么,将 GG 中的这条边进行“缩减”得到图 G′G'。如果 G′G' 中存在重边或自环,将重复的边或自环删除。这条边所连接的两个点上面的所有棋子将被移动到“缩减”操作所创建的新点上。然后 G←G′G\leftarrow G'。
  • 如果两个棋子在相同结点上或者它们所在的两个结点之间没有边,不进行操作。

每次执行操作后,输出图 GG 的边数。

  • 边的“缩减”:
    边的缩减是对这条边连接的两个点 u,vu,v 进行合并操作。具体地:
    • 创建一个新结点 ww。
    • 对于 GG 的每个结点 x≠ux\ne u 且 x≠vx\ne v,在 xx 和 ww 之间连边当且仅当 xx 在原图中与 uu 有连边,或与 vv 有连边。
    • 删除 u,vu,v 与和它们两个相连的所有边。

输入格式

第一行两个整数 N,M(2≤N≤3×105,1≤M≤3×105)N,M(2\le N\le 3\times 10^5,1\le M\le 3\times 10^5)。
接下来 MM 行,每行两个整数 Ui,Vi(1≤Ui<Vi≤N)U_i,V_i(1\le U_i<V_i\le N)。保证不存在重边。
接下来一行,一个整数 Q(1≤Q≤3×105)Q(1\le Q\le 3\times 10^5)。
接下来一行 QQ 个整数 X1,X2,⋯ ,XQ(1≤Xi≤M)X_1,X_2,\cdots,X_Q(1\le X_i\le M)。

输出格式

输出 QQ 行,第 ii 行输出一个整数表示执行完第 ii 个操作后图 GG 的边数。

输入输出样例

  • 输入#1

    7 7
    1 2
    1 3
    2 3
    1 4
    1 5
    2 5
    6 7
    5
    1 2 3 1 5

    输出#1

    4
    3
    3
    3
    2

说明/提示

样例解释

初始时 GG 的状态如图。圈内数字表示点上棋子的编号。

第一次操作我们缩减棋子 11 和棋子 22 所在结点之间的边(左下图)。

操作后,GG 如右下图所示,剩余的边数为 44。注意自环被删除,重边被一条边代替。

第二次操作缩减棋子 11 和棋子 33 所在结点之间的边。

操作后,GG 如左下图所示,剩余的边数为 33。

第三次操作时,因为棋子 22 和棋子 33 在同一个结点上,所以图 GG 不变。剩余的边数为 33。

第四次操作时,因为棋子 11 和棋子 22 在同一个结点上,所以图 GG 不变。剩余的边数为 33。

第五次操作缩减棋子 11 和棋子 55 所在结点之间的边。

操作后,GG 如右下图所示,剩余的边数为 22。

因此以此输出 4,3,3,3,24,3,3,3,2。

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

首页