AT_abc416_e [ABC416E] Development

题目描述

AtCoder 国有 $1$ 到 $N$ 编号的 $N$ 个城市,$M$ 条道路,以及 $K$ 个机场。 第 $i$ 条道路连接城市 $A_i$ 和城市 $B_i$,为双向道路,通行时间为 $C_i$。 机场位于城市 $D_1,\ldots,D_K$,有机场的城市之间可以以 $T$ 时间互相到达。 给定 $Q$ 个查询,请依次处理。查询有以下三种类型之一: - `1 x y t`:在城市 $x$ 和城市 $y$ 之间新建一条双向道路,通行时间为 $t$。 - `2 x`:在城市 $x$ 新建一个机场。 - `3`:设 $f(x,y)$ 为从城市 $x$ 到城市 $y$ 通过道路和机场可达时的最短时间,不可达时为 $0$。请计算 $\sum_{x=1}^{N}\sum_{y=1}^{N}f(x,y)$。

输入格式

输入以如下格式从标准输入读入。 > $N$ $M$ > $A_1$ $B_1$ $C_1$ > $\vdots$ > $A_M$ $B_M$ $C_M$ > $K$ $T$ > $D_1$ $\dots$ $D_K$ > $Q$ > $\mathrm{Query}_1$ > $\vdots$ > $\mathrm{Query}_Q$ $\mathrm{Query}_i$ 表示第 $i$ 个查询,其格式和含义如题目描述所述。

输出格式

对于每个第 $3$ 种类型的查询,依次输出答案,每行一个。

说明/提示

## 约束条件 - $1\leq N\leq 500$ - $0\leq M\leq 10^5$ - $1\leq A_i < B_i \leq N$ - $1\leq C_i \leq 10^9$ - $0\leq K\leq N$ - $1\leq T\leq 10^9$ - $1\leq D_1 < \dots < D_K \leq N$ - $1\leq Q\leq 1000$ - 对于第 $1$ 种类型的查询,$1\leq x < y \leq N$,$1\leq t\leq 10^9$ - 对于第 $2$ 种类型的查询,$1\leq x\leq N$ - 所有输入均为整数 ## 样例解释 1 AtCoder 国有 $4$ 个城市,最初城市 $1$ 和城市 $2$ 之间有一条通行时间为 $10$ 的道路,城市 $1$ 和城市 $3$ 之间有一条通行时间为 $100$ 的道路。 - 最初,$f(1,2)=f(2,1)=10,\ f(1,3)=f(3,1)=100,\ f(2,3)=f(3,2)=110$,其余均为 $0$,所以 $\sum_{x=1}^{N}\sum_{y=1}^{N}f(x,y)=440$。 - 新增一条城市 $2$ 和城市 $3$ 之间通行时间为 $60$ 的道路。 - $f(1,2)=f(2,1)=10,\ f(1,3)=f(3,1)=70,\ f(2,3)=f(3,2)=60$,其余均为 $0$,所以 $\sum_{x=1}^{N}\sum_{y=1}^{N}f(x,y)=280$。 - 新增一个机场在城市 $4$。 - $f(1,2)=f(2,1)=10,\ f(1,3)=f(3,1)=70,\ f(1,4)=f(4,1)=100,\ f(2,3)=f(3,2)=60,\ f(2,4)=f(4,2)=110,\ f(3,4)=f(4,3)=100$,其余均为 $0$,所以 $\sum_{x=1}^{N}\sum_{y=1}^{N}f(x,y)=900$。 同一对城市之间可以建多条道路,同一城市也可以建多个机场。 由 ChatGPT 4.1 翻译