Namomo Cockfight Round 5

AC代码

A. Number

假设\(n_i\)为十进制数\(n\)的第\(i\)位上的数字,那么\(\max_{i}n_i\)即为答案。

B. Mod

用BFS的方法计算可以以\(O(p)\)的复杂度出\(x\)\(i(0 \le i < p)\)的最少步数, 记该步数位\(cost(x, i)\)

分别对\(n\)\(m\)执行上述步骤,然后枚举\(i(0 \le p < p)\)\(cost(n, i)+cost(m,i)\)的最小值即为答案。

C. Game

\(n=1\)时特判。

\(n\)为奇数时,最后一步由后手方操作。所以,不论最后一步剩余的两个数字是什么,后手方都能造出一个偶数,所以\(n\)为奇数时后手必胜。

后续仅需讨论\(n\)为偶数的情况。\(n\)为偶数时最后一步由先手方操作。

如果初始数列至少有两个偶数,那么每次后手方操作完数列至少保留2个偶数。因为先手方最优的操作就是删去1个0,而后手方总能耗费任意两个数造出一个偶数。所以最后一步时数列由两个偶数组成,此时后手必胜。

反之,在后手操作完之后先手总能将新造的0删去,所以数列中不会有超过初始值的偶数,所以先手方操作最后一步的时候至多有1个0。此时先手必胜。

D. String

  • I: trie插入
  • D: trie删除
  • Q: trie查询
  • U: 每次暴力将两颗子树合并。

看了评论区,终于搞懂了为什么这样整能过。nb网友这么多的么。

posted @ 2020-08-16 21:24  _Backl1ght  阅读(260)  评论(7编辑  收藏  举报