QOJ.ac

QOJ

Time Limit: 1 s - 2 s Memory Limit: 512 MB Total points: 100

#10361. 城市建设

Statistics

小 G 所居住的城市可以抽象为一张 $N$ 个点 $M$ 条边的 有向图。在城市建设的过程中,该城市的道路会发生一些变化;具体来说,一共会有 $Q$ 次操作,包含以下两种类型:

  1. 给出点 $p$,再给出 $tot$ 个数 $a_i$,在图中加入 $a_i$ 到 $p$ 的边。
  2. 给出点 $p$,再给出 $tot$ 个数 $a_i$,在图中删除 $a_i$ 到 $p$ 的边。

好奇的小 G 想在每次操作后知道,所有点对之间的 可达情况

令 $F(u, v)$ 表示 $u, v$ 之间的可达状态,如果图中存在一条从 $u$ 到 $v$ 的路径,那么 $F(u,v)= 1$,否则 $F(u,v)= 0$。 容易发现 $F(u, v)$ 和 $F(v, u)$ 不一定相等,且 $F(u,u)$ 必然是 1。

为了方便询问,每一个点有点权 $val_i$,你需要在每次操作后回答下式的值:

$$ \sum_{u=1}^{N} \sum_{v=1}^{N} F(u, v) \times (val_u \oplus val_v) $$

其中 $\oplus$ 表示两个数的异或值。 保证初始给出的图以及每次操作后的图 不存在重边和自环;并且删除一条边时,图上必然存在这条边。 我们还会有一些手段来 强制在线

输入格式

  • 第一行包含一个整数 $ID$,表示当前是第 $ID$ 组测试数据;其中样例的 $ID$ 均为 0。
  • 第二行包含一个整数 $flag$,保证 $flag$ 是 $0$ 或 $1$;当 $flag=1$ 时,这组数据要求强制在线。
  • 第三行包含三个整数 $N, M, Q$,分别表示图的点数、初始图的边数、需要进行的操作次数。
  • 第四行包含 $N$ 个非负整数,表示每个点的点权 $val_i$。
  • 接下来 $M$ 行,每行包含两个整数 $u, v$,表示初始图上有一条从 $u$ 到 $v$ 的有向边。
  • 接下来 $2Q$ 行,每两行描述一次操作:

    • 第一行包含三个整数 $k, p, tot$。其中 $k$ 为 $0$ 或 $1$,当 $k=0$ 时,为加边操作;反之为删边操作。
    • 第二行包含 $tot$ 个 互不相同 的整数 $a_i$。

当 $flag = 1$(即强制在线)时,令 $lastAns$ 表示上一次操作后输出的答案(第一次操作的 $lastAns=0$),需要将 $p$ 异或上 $lastAns$ 作为 $p$ 的真实的值。

注意:$lastAns$ 可能会很大!

输出格式

共 $Q$ 行,每行一个整数,表示这次操作后的答案。

样例

样例输入一

0
0
10 10 1
0 1 1 1 1 1 1 1 1 0
1 7
2 1
7 3
3 7
10 2
8 5
2 10
2 5
3 6
4 5
0 1 0

样例输出一

10

样例输入二

0
0
5 0 10
775753708 730589119 295766137 411078803 10973174
0 1 1
3
0 2 1
3
0 1 1
4
0 3 1
2
0 5 1
4
0 4 1
1
0 1 1
2
0 2 1
5
0 4 1
3
0 1 1
5

样例输出二

1067190165
2043082587
2961479386
4033244915
4438519384
8158342623
8158342623
12528106804
12528106804
12528106804

样例输入三

0
0
5 7 5
505212782 768758516 141501571 189544889 292811675
2 1
2 3
2 5
3 1
3 4
4 1
5 3
0 3 2
1 4
1 5 1
2
0 1 1
5
1 1 4
2 3 4 5
0 5 1
2

样例输出三

5862031096
4844805513
4844805513
2982371382
3999596965

样例说明

这三个样例分别满足类型一、类型二、类型三的要求。

限制与约定

本题共 $20$ 个测试数据,每个测试数据的分值为 $5$ 分。
所有测试数据可分为以下三种类型:


类型一(共 20 分)

保证 $Q = 1$,$tot = 0$,即只需对原图询问答案。
且 $0 \le val_i \le 1$

$ID$ $flag$ $N$ $M$ $Q$ $tot$
1 0 $\le 35000$ $\le 100000$ 1 0
2 0 $\le 35000$ $\le 100000$ 1 0
3 0 $\le 35000$ $\le 100000$ 1 0
4 0 $\le 35000$ $\le 100000$ 1 0

类型二(共 40 分)

保证不存在删边操作,即每次操作 $k = 0$;同时 $tot = 1$,$M = 0$

$ID$ $flag$ $N$ $M$ $Q$ $tot$
5 0 $\le 500$ 0 $\le 15000$ 1
6 0 $\le 600$ 0 $\le 20000$ 1
7 0 $\le 800$ 0 $\le 30000$ 1
8 0 $\le 1000$ 0 $\le 50000$ 1
9 0 $\le 1500$ 0 $\le 80000$ 1
10 0 $\le 2000$ 0 $\le 100000$ 1
11 1 $\le 2500$ 0 $\le 150000$ 1
12 1 $\le 2500$ 0 $\le 150000$ 1

类型三(共 40 分)

无特殊约定:

$ID$ $flag$ $N$ $M$ $Q$ $tot$
13 0 $\le 10$ / $\le 10$ /
14 0 $\le 50$ / $\le 50$ /
15 0 $\le 200$ / $\le 200$ /
16 0 $\le 300$ / $\le 300$ /
17 0 $\le 400$ / $\le 800$ /
18 0 $\le 400$ / $\le 800$ /
19 0 $\le 400$ / $\le 800$ /
20 1 $\le 400$ / $\le 800$ /

保证 $100\%$ 的数据满足:

  • $N \ge 2$
  • $0 \le M \le N(N-1)$
  • $1 \le u, v, p, a_i \le N$
  • $0 \le tot < N$
  • $0 \le val_i \le 10^9$

时间与内存限制

因为某种不可抗拒的力量,不同类型的时限不同:

  • 类型一:2 秒
  • 类型二:1 秒
  • 类型三:1.5 秒

内存限制:512 MB

Discussions

About Discussions

The discussion section is only for posting: Editorials, General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues. Submitting multiple issues may cause your account to be banned.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.