loj#P574. 「LibreOJ NOI Round #2」黄金矿工
「LibreOJ NOI Round #2」黄金矿工
题目描述
你是一处金矿的主人,并且有若干矿工要来这里挖黄金。
这处宝藏有 个可能的藏宝点,这 个点构成了一棵有根树的结构。
树上的每条边都是有向的,从父亲指向儿子,并且有个正整数权值 ,表示每有一个矿工从这条边走过,你会收取 的过路费。
每个矿工 会从某一个藏宝点 出发,并且有一个正整数权值 ,表示如果你允许他来挖宝,将会获得 的入场费。
某个藏宝点 可能还会出现一块权值为 黄金,表示如果有矿工挖取了这个黄金,你会从中提走 的利润。
一个矿工 挖取一块黄金 的收益是 ,其中边 在人 和黄金 的路径上。
注意一个矿工只能挖取一块黄金,一块黄金也只能被一个矿工挖取。一个矿工只能挖取他沿着树上有向边能到的黄金,同一条边在同一个挖取方案中可以被多个人经过。
一开始既没有黄金也没有矿工。
我们需要支持 次操作,每次操作有两种类型:
- :表示在点 上新出现了一个权为 的矿工。
- :表示在点 上新出现了一块权为 的黄金。
你需要在每次操作后算出,如果让某些矿工去挖取黄金,那么可能的最大收益是多少。
注意你并不需要最大化挖到黄金的人数量。
输入格式
从标准输入读入数据。
第一行两个整数 和 ,表示树的节点和操作数。
接下来 行,每行三个正整数 ,表示有一条权为 的边从点 指向点 。
接下来 行每行描述一次操作。
输出格式
输出到标准输出。
对于每次操作,输出一个整数表示这次操作执行后的答案。
5 5
1 2 1
1 3 1
1 4 1
4 5 1
1 3 5
2 3 1
1 4 8
1 1 1
2 1 10
0
6
6
6
17
数据范围与提示
对于所有数据,保证 ,并且所有树边的权均为不超过 的正整数,所有矿工和黄金的权均为不超过 的正整数。
测试点 | 特殊性质 | ||
---|---|---|---|
C2 | |||
C1 | |||
C2 | |||
A1 | |||
B1 | |||
C1 | |||
C2 | |||
表格中的特殊性质
- A:第 条边从 指向
- B:第 条边从 指向
- C:在树的形态上无特殊约束
- 1:保证所有 操作都在 操作之后
- 2:在操作类型上无特殊约束