QOJ.ac

QOJ

時間限制: 2.0 s 記憶體限制: 256 MB 總分: 100

#13180. 旅行推销员问题

统计

有 $N$ 座城市(编号从 $1$ 到 $N$),由 $M$ 条双向道路连接,使得从任意城市出发,都可以通过一条或多条道路到达其他任何城市。第 $i$ 座城市具有经济价值 $S_i$,每条道路直接连接两座不同的城市。

共有 $Q$ 个查询,需要依次执行,每个查询由一个元组 $(A_i, B_i, C_i)$ 表示:

  1. 如果 $A_i = 0$,你需要将城市 $B_i$ 的经济价值修改为 $C_i$。
  2. 如果 $A_i = 1$,你需要输出以下问题的答案:假设有两名商人,其中一人在城市 $B_i$,另一人在城市 $C_i$。他们商定一个非负整数 $X$,其中 $X$ 是他们四处走动的天数。每天,两名商人都移动到当前所在城市的任意相邻城市,他们重复此过程 $X$ 天。他们不能连续两天停留在同一个城市,但可以重新访问之前访问过的城市。$X$ 天后,他们应该位于某些城市,使得这两座城市的经济价值之差最小。输出该最小差值。注意,两名商人最终所在的城市可以是同一座城市。

输入格式

第一行包含两个整数:$N$ 和 $M$ ($1 \le N \le 100,000; 1 \le M \le 200,000$),表示城市和道路的数量。第二行包含 $N$ 个整数:$S_1, S_2, \dots, S_N$ ($0 \le S_i \le 1,000,000,000$),表示每座城市的经济价值。接下来的 $M$ 行,每行包含两个整数:$u_i, v_i$ ($1 \le u_i, v_i \le N; u_i \neq v_i$),表示第 $i$ 条道路连接城市 $u_i$ 和城市 $v_i$。保证从任意城市出发,都可以通过一条或多条道路到达其他任何城市。下一行包含一个整数:$Q$ ($1 \le Q \le 100,000$),表示查询的数量。接下来的 $Q$ 行,每行包含三个整数:$A_i, B_i, C_i$ ($0 \le A_i \le 1$),表示查询。对于每个查询,如果 $A_i = 0$,则 $1 \le B_i \le N$ 且 $0 \le C_i \le 1,000,000,000$;否则 $1 \le B_i, C_i \le N$。保证至少有一个查询满足 $A_i = 1$。

输出格式

对于每个 $A_i = 1$ 的查询,输出商人 $X$ 天后能够到达的两座城市之间经济价值的最小差值。注意,$X$ 的值可以是任意非负整数,且在不同查询之间相互独立。

样例

样例输入 1

6 6 
0 0 0 0 0 0 
1 2 
1 6 
5 1 
2 3 
3 4 
3 5 
7 
1 1 2 
0 1 10 
0 3 20 
1 1 2 
0 4 11 
1 1 3 
1 1 6

样例输出 1

0
10
0
1

说明

第一个样例的道路配置和查询说明如下:

  • 最初所有城市的经济价值均为 $0$。
  • 第 $1$ 个查询:1 1 2。由于所有城市的经济价值相同(即 $0$),他们可以决定任意 $X$ 并移动到他们想要的任何城市;差值为 $0$。
  • 第 $4$ 个查询:1 1 2。此查询与第 $1$ 个查询相同,但现在城市 $1$ 的经济价值为 $10$(由于第 $2$ 个查询),城市 $3$ 的经济价值为 $20$(由于第 $3$ 个查询)。如果他们选择 $X = 0$,可以达到 $10$ 的最小差值。以下是一些差值不是最小的例子:
    • $X = 1$,第一位商人从城市 $1$ 移动到城市 $5$(经济价值为 $0$),第二位商人从城市 $2$ 移动到城市 $3$(经济价值为 $20$)。两座最终城市的经济价值之差为 $20$。
    • $X = 2$,第一位商人从城市 $1$ 移动到城市 $5$,再到城市 $3$(经济价值为 $20$),第二位商人从城市 $2$ 移动到城市 $3$,再到城市 $4$(经济价值为 $0$)。两座最终城市的经济价值之差为 $20$。
  • 可以通过 $X = 1$ 达到 $10$ 的最小差值,例如,第一位商人从城市 $1$ 移动到城市 $2$(经济价值为 $0$),第二位商人从城市 $2$ 移动到城市 $1$(经济价值为 $10$)。也可以通过 $X = 2$ 达到此结果,例如,第一位商人从城市 $1$ 移动到城市 $5$,再到城市 $1$(经济价值为 $10$),第二位商人从城市 $2$ 移动到城市 $3$,再到城市 $2$(经济价值为 $0$)。在所有可能的移动中,此情况下能达到的最小差值为 $10$。
  • 第 $6$ 个查询:1 1 3。两位商人可以选择 $X = 1$ 并一起移动到城市 $2$(或城市 $5$)。
  • 第 $7$ 个查询:1 1 6。他们可以选择 $X = 3$ 并移动,使得最终城市为城市 $4$(经济价值为 $11$)和城市 $1$(经济价值为 $10$)。

Discussions

About Discussions

The discussion section is only for posting: 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.
  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.