SP16716 HELPCOMM - Help Your Commander

题目描述

一名优秀的战争指挥官需要迅速决策,同时还要有卓越的战略眼光。指挥官的任务之一是将士兵部署到各个战略要点,以便突然袭击敌人,取得胜利。战场上分布着多个战略要点,并由若干条路线相连。 然而,战场正遭受炮火攻击,原本安全的路线不再可靠。一旦某条路线被炸毁,地形将变得不适合通行。为了应对这一挑战,指挥官命令一些士兵寻找新的路线。 指挥官请求你帮助他计算从基地到各战略要点的最短路径。你将获得战场的初始状况,包括 **N** 个战略要点(第 1 个点是基地)和 **M** 条路线。随着炸弹摧毁某些路线,同时士兵发现新的路径,你需要不断更新地图,以便为指挥官提供最新的信息。 祝好运,国家的命运掌握在你的手中。

输入格式

输入由多个测试用例组成。每个测试用例首先提供两个整数 **N** 和 **M**($2 \le N \le 1000$ 且 $1 \le M \le 10000$),分别表示战略要点的数量和路线数量。接下来有 **M** 行,每行包括三个整数 **U**、**V** 和 **W**($1 \le U, V \le N$ 且 $1 \le W \le 100$),表示有一条从点 **U** 到点 **V** 的单向路线,距离为 **W**。 然后有一个整数 **Q**($1 \le Q \le 1000$),表示需要对路线进行的查询或更新次数。接下来的 **Q** 行中,每行以一个字母开头,后接若干整数。 - 当字母为 **R** 时,后接两个整数 **U** 和 **V**($1 \le U, V \le N$),表示从点 **U** 到点 **V** 的路线被炸毁。 - 当字母为 **I** 时,后接三个整数 **U**、**V** 和 **W**($1 \le U, V \le N$ 且 $1 \le W \le 100$),表示发现了一条新增的路线,从点 **U** 到点 **V**,距离为 **W**。 - 当字母为 **P** 时,后接一个整数 **V**($1 \le V \le N$),需要你告诉指挥官从基地到战略要点 **V** 的最短距离。 输入在 **N** 和 **M** 都为 0 时结束。

输出格式

对于每个类型为 **P** 的查询,输出一行,包含一个整数,表示从基地到指定战略要点的最短距离。如果不存在这样的路径,输出 `-1`。 **本翻译由 AI 自动生成**