qoj8331 Bot Brothers 题解

一个很显然的观察是后手一定不败,策略就是一直跟着先手走。考虑是平局还是后手胜。

因为两个随时都一定在同一个深度上,我们不妨按深度来考虑。

\(s_u\) 表示 \(u\) 的子树中叶子结点的集合,\(t_u\) 表示 \(u\) 的子树中叶子节点值 \(+1\) 的集合。

我们考虑在深度为 \(depth\) 的所有点。首先若存在一个点 \(u\) 使得没有一个点 \(v\)\(s_v\) 能够完全包含 \(t_u\),那么一定是平局,因为先手可以走到点 \(u\),这样后手一定不胜。那先手如果要胜,就必须满足所有的 \(u\) 都一定能找到一个 \(v\) 使得 \(s_v\) 包含 \(t_u\)。仔细思考就会发现这个条件相当于每个点的集合大小全部相等(也就是 \(t_u=s_v\)),并且形如 \(\{a,a+x,a+2x,\dots\}\)\(x\) 为深度为 \(depth\) 的点的数量。

也就是说,对于同一个深度的点,我们按 \(a\) 从小到大排序。则必须满足 \(t_i=s_{i+1}\)。判断两个集合是否相等直接哈希即可。时间复杂度 \(O(n \log n)\),瓶颈在排序。

注意若集合大小等于 \(1\) 的情况需要特殊处理一下。

posted @ 2024-10-08 08:38  Creeper_l  阅读(29)  评论(0编辑  收藏  举报
  1. 1 イエスタデイ(翻自 Official髭男dism) 茶泡饭,春茶,kobasolo
  2. 2 世间美好与你环环相扣 柏松
  3. 3 True love tired
  4. 4 一笑江湖 (DJ弹鼓版) 闻人听書_
  5. 5 最好的安排 曲婉婷
  6. 6 星星在唱歌 司南
  7. 7 山川 李荣浩
  8. 8 On My Way Alan Walker
  9. 9 百战成诗 王者荣耀·100英雄官方群像献礼歌
  10. 10 雪 Distance Capper / 罗言
  11. 11 Edamame bbno$ / Rich Brian
  12. 12 半生雪 七叔-叶泽浩
  13. 13 Catch My Breath Kelly Clarkson
  14. 14 Love Is Gone SLANDER / Dylan Matthew
  15. 15 Endless Summer Alan Walker / Zak Abel
  16. 16 悬溺 葛东琪
  17. 17 风吹丹顶鹤 葛东琪
  18. 18 Normal No More TYSM
  19. 19 哪里都是你 队长
  20. 20 Stronger Kelly Clarkson
  21. 21 廖俊涛
  22. 22 消愁 毛不易
  23. 23 The Runner Yubik
  24. 24 踏山河 七叔-叶泽浩
  25. 25 Waiting For Love Avicii
  26. 26 在你的身边 盛哲
  27. 27 Dream It Possible Delacey
  28. 28 凄美地 郭顶
  29. 29 满天星辰不及你 ycc
  30. 30 侧脸 于果
  31. 31 阿拉斯加海湾 蓝心羽
  32. 32 虞兮叹 闻人听書_
  33. 33 离别开出花 就是南方凯
  34. 34 盗墓笔记·十年人间 李常超 (Lao乾妈)
- 廖俊涛
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.