Atcoder abc246
https://atcoder.jp/contests/abc246/tasks
G - Game on Tree 3
n点,1为根的树
除了根,点i上面还有值Ai
棋子初始在1
- 乙 选一个非根点,修改值Ai = 0
- 甲 把棋子移动到当前所在的一个子节点上, 随时可以结束游戏
移动到叶子后结束
分数=结束游戏时棋子所在位置的值
甲要让分尽量大, 乙要让分尽量小
求分
范围
n 2e5
ai 1e9
6s
1024mb
我的思路
一眼感觉树上dp, 因为乙要让分尽量小, 所以每次乙一定操作的是当前所在的剩余树上的点
但感觉不一定操作最近的
比如
1 | 0 |
那么,最大答案是1, 乙第一次移动的是左边某个叶子的100, 因为如果不是这样, 那么甲向左走,可以得到>=100 > 1
没啥想法对于局部性, dp[i][j] =
点i为根的树已经删了j个点后剩余能得到的最大值, 但转移和范围 感觉都没想法