题解 | 牛客挑战赛55

A

显然斐波那契数列。

B


函数的值不超过 ,枚举函数的层数。 先统计多少模 c 同余,模 同余,...,层数是 级别。 用哈希表存然后统计答案即可。

C


因为是要乘积最大,且因为取模不能直接维护,再观察一下题目的 2 的幂性质,不难发现先取

这样问题变为了切割一个矩形,内部不能包含 0(因为乘 0 就变 0 了),且矩形所有数的和最大。

容易发现最大矩形一定是极大矩形,二维前缀和+悬线法dp/单调栈维护即可。

D


发现函数嵌套后关于 x 还是一个函数,而且是一次函数。这个自己推一下易证。

于是就可以线段树维护单点修改和区间查询了。


现在问题在于区间加 b,这个不好 pushdown。

考虑区间加后对合并后函数的变化。

k 值显然不变,b 值可以考虑每个函数被加 x 的贡献,来尝试维护 b 的变化量。

b_l 导致结果的变化量为

导致结果的变化量为

可以写出最终的式子:



(注意 是前面式子后单独的,不是 )

x 修改时给定,现在只要 `pushup` 时能维护 就做完了。

右儿子部分,直接加上就完事,左儿子部分还要多乘一个 ,这个也可以 `pushup` 时维护,直接左儿子乘右儿子。


E






F

考虑莫队,假定我们已经处理出区间 的答案,考虑去扩展到 的答案。

定义





我们转移的代价为:



提出



而对于



的处理是平凡的。




那么前面的部分即



我们发现这样对这一部分的处理同样是平凡的。

具体地:



那么



对于 Pre,Ps 处理可以直接莫队二离做到
全部评论

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务