codeforces 226 C 数论,利用Fibonacci数列的一个性质
2017-02-21 22:06
239 查看
输入p,l,r,k
1<=l<r<=10^12
给出fibonacci数列f[l],...,f[r]这一段,要从中拿出k个数,使得这k个数的gcd最大,输出ans%p
思路:
有(fib[i],fib[j]) = fib[(i,j)]
则(fib[i],fib[j],fib[k]) = fib[(i,j,k)]
由于fib数列递增,
实际上是要找最大的x,使得[l,r]中x的倍数>=k个,
即:r / x - (l - 1) / x >= k
枚举x,一段一段枚举,O(sqrt(r))级别
找到最大的x,再矩阵快速幂求fib[x] % p
p有可能是1,所以即使fib[x] = 1,也要输出fib[x] % p
1<=l<r<=10^12
给出fibonacci数列f[l],...,f[r]这一段,要从中拿出k个数,使得这k个数的gcd最大,输出ans%p
思路:
有(fib[i],fib[j]) = fib[(i,j)]
则(fib[i],fib[j],fib[k]) = fib[(i,j,k)]
由于fib数列递增,
实际上是要找最大的x,使得[l,r]中x的倍数>=k个,
即:r / x - (l - 1) / x >= k
枚举x,一段一段枚举,O(sqrt(r))级别
找到最大的x,再矩阵快速幂求fib[x] % p
p有可能是1,所以即使fib[x] = 1,也要输出fib[x] % p
相关文章推荐
- 山东省第五届省赛 F - Full Binary Tree (利用满二叉树性质的一个思维题)
- Codeforces 603B - Moodular Arithmetic 数论 应用群的基本性质
- 利用python闭包性质写只用函数来写一个类
- 图解利用Eclipse3+Lomboz3+Tomcat开发JSP --3.一个JSTL实例
- 利用 Java 平台的特性建造一个令人瞩目的系统
- 利用JS做的一个网页安全色调色板
- 利用Java平台的特性建造一个令人瞩目的系统
- 利用WSS做后台存储--设计一个统一的信息发布平台
- 利用Win32的网络函数创建一个网络浏览器
- 利用XML 与XSL 开发一个易于修改和扩充的用户手册
- 利用HTTP协议和IE的漏洞在其他计算机上运行一个程序
- 利用热键控制鼠标移动的一个程序
- 利用Visual C#开发一个媒体播放器
- 利用C#制作一个仿IE地址栏的文本框
- XML应用-利用XML 与XSL 开发一个易于修改和扩充的用户手册
- 图解利用Eclipse3+Lomboz3+Tomcat开发JSP --2.编辑一个JSP实例
- 利用XML文件的一个写日志的类!!!!!
- 利用SQL未公开的存储过程实现分页(更加好用的一个!)
- 图解利用Eclipse3+Lomboz3+Tomcat开发JSP -- 4.一个Servlet实例
- 利用C#制作一个仿IE地址栏的文本框