牛客练习赛 118 题解
A. Hard KMP Problem
记录两个串中每种字符的出现次数为 。计算
即可。
B. Sum Gcd
有很多种做法,其中一种是: 是积性函数,因此,上式在
时满足
。特别注意
的时候单独计算。
C. Future Machine
考虑三个数 ,考虑操作可以变成
。
那么考虑枚举 ,如果
,那么操作
次以后一定还满足
。记
分别为
数组的最小值和最大值,不难发现
固定时进行
次操作后
。同理对
的情况也有类似结论。
因此 模拟一遍即可解决问题。
D. Binary String Game
可以证明当 时,有如下结论:
当 为偶数时,可以到达任何一个 1 个数奇偶性不变的状态。
当 为奇数时,可以到达任何一个状态。
确定一个方案之后可以使用类似 bfs 或者 dfs 的手段求出某个包含 个 1 的状态。
当然其实最简单的方法还是我们手动构造。
发现不管什么情况下我们都可以用两次操作恰好翻转 格。那么当我们需要选的
的个数是偶数的时候就做完了,如果是奇数,先翻翻翻到只剩一个,最后这一个跟另外任意
个组成一组再翻一次,那么接下来就要把
个翻回去,而
是偶数所以做完了。
E. Slove Equations
。
然后这个东西其实也是可逆的,所以可以直接维护前缀信息,注意维护无解和多解的情况。
F. The Closest Pair
。
。
枚举 以及
,合法的
在值域上是一个区间。考虑
所在的下标
,以及右侧的一个合法的
下标为
,设
右侧的另一个合法的
所在的位置为
,当
比
优秀则需要满足
,同时又因为
需要比
优秀,因此可以加紧限制考虑
。左右分别只有
对。
这样我们扣出 对可能成为答案的点对之后扫描线即可。