比赛场次 443
比赛名称 膜你赛
比赛状态 已结束比赛成绩
开始时间 2019-04-28 08:30:00
结束时间 2019-04-28 22:00:00
开放分组 全部用户
注释介绍 2019.3.3(毒瘤!!!)
题目名称 收集
输入输出 collect.in/out
时间限制 3000 ms (3 s)
内存限制 512 MiB
测试点数 20 简单对比
用户 结果 时间 内存 得分

收集

★★★☆   输入文件: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