题目名称 3122. 收集
输入输出 collect.in/out
难度等级 ★★★☆
时间限制 3000 ms (3 s)
内存限制 512 MiB
测试数据 20
题目来源 Gravatar梦那边的美好ET 于2019-04-28加入
开放分组 全部用户
提交状态
分类标签
分享题解
通过:1, 提交:6, 通过率:16.67%
Gravatarop_组撒头屯 100 6.261 s 59.22 MiB C++
Gravatar瑆の時間~無盡輪迴·林蔭 15 2.000 s 19.76 MiB C++
Gravatar瑆の時間~無盡輪迴·林蔭 0 1.924 s 19.38 MiB C++
Gravatar瑆の時間~無盡輪迴·林蔭 0 5.984 s 43.41 MiB C++
Gravatar瑆の時間~無盡輪迴·林蔭 0 8.901 s 26.35 MiB C++
Gravatar瑆の時間~無盡輪迴·林蔭 0 9.102 s 26.39 MiB C++
本题关联比赛
膜你赛
关于 收集 的近10条评论(全部评论)

3122. 收集

★★★☆   输入文件:collect.in   输出文件:collect.out   简单对比
时间限制:3 s   内存限制:512 MiB

【题目描述】

wzp 又开始了收集兵器之旅

wzp 打开了一个游戏,这个游戏的地图中有 N 个村庄和 N-1 条道路,并且任何两个村庄之间有且仅有一条路径可达。游戏开始时,玩家可以任意选择一个村庄,瞬间转移到这个村庄,然后可以任意在地图的道路上行走,若走到某个村庄中有宝物,则视为找到该村庄内的宝物,直到找到所有宝物为止。

wzp 想知道收集完所有宝物的时间,因此他需要知道找到所有宝物需要行走的最短路程。但是这个游戏随机性较强,有时某个村庄中会突然出现宝物,有时某个村庄内的宝物会突然消失,因此 wzp 需要不断地更新数据,但是 wzp 太懒了,不愿意自己计算,因此他向你求助。为了简化问题,我们认为最开始时所有村庄内均没有宝物.

【输入格式】

第一行,两个整数 N、M,其中 M 为宝物的变动次数。接下来的 N-1 行,每行三个整数 x、y、z,表示村庄 x、y 之间有一条长度为 z 的道路。接下来的 M 行,每行一个整数 t,表示一个宝物变动的操作。若该操作前村庄 t 内没有宝物,则操作后村庄内有宝物;若该操作前村庄 t 内有宝物,则操作后村庄内没有宝物。

【输出格式】

M 行,每行一个整数,其中第 i 行的整数表示第 i 次操作之后 wzp 找到所有宝物需要行走的最短路程。

【样例输入】

4 5
1 2 30
2 3 50
2 4 60
2
3
4
2
1

【样例输出】

0
50
110
110
170

【提示】

对于 10% 的数据,1≤N≤100,1≤M≤100

对于 20% 的数据,1≤N≤1000,1≤M≤1000

对于另外 15% 的数据,每个村庄最多成为两条道路的端点;

对于 100% 的数据,1≤N≤100000 1≤M≤100000 1≤z≤10^9