题解 | #牛客推荐系统开发之下班#

牛客推荐系统开发之下班

https://ac.nowcoder.com/acm/contest/11174/F

经典斐波那契套路题,首先你得知道斐波那契数列这样的一个性质。

有了这样一个性质,我们便可以把原式转为:

接下来就是经典的莫比乌斯反演套路了。但不太一样的是,我们需要在这一步打住:

,由于 只有 的不同的取值情况且 可以通过数论分块 求解,根据大佬的结论,暴力求解 这样的函数所有取值情况时间复杂度貌似是 (反正跑得飞快)。现在只需要关注 的前缀和就行。还好这里还有个关于斐波那契数列前缀和 的公式:

这下将问题转移为单点求斐波那契数列的问题了。考虑 的通项公式:

因为 是模 的二次剩余,说明 在模 下存在意义。不会求二次剩余也不是很大问题,本地暴力求出即可,得到其中一个解为 ,即可以用 替换原式中的 ,那么此时原式就可以进行数论分块了。总的复杂度为

全部评论
那你为什么只A了一道题?
点赞 回复 分享
发布于 2021-06-11 22:17
请问为什么分块套分块是 O(n^{\frac{3}{4}}) 的啊,能给个证明链接啥的吗 ;w;
点赞 回复 分享
发布于 2021-06-11 23:37
这个n^0.75的复杂度我也是从洛谷幽灵乐团那里的题解云来的。。。希望有大佬能给出时间复杂度分析
点赞 回复 分享
发布于 2021-06-12 00:18

相关推荐

2024-12-29 11:08
湖南工业大学 Java
程序员牛肉:简历没什么大问题了。 而且不要再换项目了。三月份就开暑期实习了,现在都一月份了。实在来不及重新开一下项目了。把一个项目写完或许很快,但是把一个项目搞懂吃透并不简单。所以不要换项目了,把你简历上面的两个项目好好挖一挖吧。 具体 体现在:你能不能流利的说出你的项目的每一个功能点代码实现?你能不能说出在这块除了A技术之外,还有其他技术能够实现嘛?如果有其他技术能够实现,那你这块为什么选择了你当前用的这个技术?
投递牛客等公司10个岗位
点赞 评论 收藏
分享
评论
4
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务