题目名称 3552. 异象石
输入输出 visionstone.in/out
难度等级 ★★☆
时间限制 1000 ms (1 s)
内存限制 256 MiB
测试数据 10
题目来源 Gravatarsyzhaoss 于2021-03-26加入
开放分组 全部用户
提交状态
分类标签
图论 LCA
分享题解
通过:5, 提交:10, 通过率:50%
Gravatar嗨嗨嗨 100 0.601 s 14.53 MiB C++
Gravataryrtiop 100 0.740 s 12.63 MiB C++
Gravatar嗨嗨嗨 100 0.893 s 14.48 MiB C++
Gravatar小金 100 1.880 s 22.71 MiB C++
Gravatar小金 100 1.974 s 22.71 MiB C++
Gravataryrtiop 10 0.734 s 11.83 MiB C++
Gravataryrtiop 10 0.739 s 11.83 MiB C++
Gravataryrtiop 10 0.743 s 11.83 MiB C++
Gravatarliuyiche 0 0.000 s 0.00 MiB C++
Gravatarliuyiche 0 5.515 s 4.50 MiB C++
关于 异象石 的近10条评论(全部评论)
记得开long long
Gravataryrtiop
2021-08-19 12:06 1楼

3552. 异象石

★★☆   输入文件:visionstone.in   输出文件:visionstone.out   简单对比
时间限制:1 s   内存限制:256 MiB

【题目描述】

Adera 是 Microsoft 应用商店中的一款解谜游戏。

异象石是进入 Adera 中异时空的引导物,在 Adera 的异时空中有一张地图。

这张地图上有$n$个点,有$n-1$条双向边把它们连通起来。

起初地图上没有任何异象石,在接下来的$m$个时刻中,每个时刻会发生以下三种类型的事件之一:

1.地图的某个点上出现了异象石(已经出现的不会再次出现);

2.地图某个点上的异象石被摧毁(不会摧毁没有异象石的点);

3.向玩家询问使所有异象石所在的点连通的边集的总长度最小是多少。

请你作为玩家回答这些问题。

【输入格式】

第一行有一个整数$n$,表示点的个数。

接下来$n-1$行每行三个整数$x,y,z$,表示点$x$和$y$之间有一条长度为$z$的双向边。

第$n+1$行有一个正整数$m$。

接下来$m$行每行是一个事件,事件是以下三种格式之一:

    +x 表示点$x$上出现了异象石

    -x 表示点$x$上的异象石被摧毁

    ? 表示询问使当前所有异象石所在的点连通所需的边集的总长度最小是多少。

【输出格式】

对于每个 ? 事件,输出一个整数表示答案。

【样例输入】

6
1 2 1
1 3 5
4 1 7
4 5 3
6 4 2
10
+ 3
+ 1
?
+ 6
?
+ 5
?
- 6
- 3
?

【样例输出】

5
14
17
10

【数据规模与约定】

对于$30%$的数据,$1\leq n,m\leq 1000$。

对于另$20%$的数据,地图是一条链或一朵菊花。

对于$100%$的数据,$1\leq n,m\leq 10^5,1\leq x,y\leq n,x\neq y,1\leq z\leq 10^9$。

【来源】

《算法竞赛进阶指南》