[CF1264F] Beautiful Fibonacci Problem 题解

《关于在做图论题单时忽遇构造题的那些事》。


通过手模,我们可以发现第一个事情:

\(k\ge 3\) 时,\(F_{1.5\times 10^k}\equiv F_0(\bmod\ 10^k)\)

我们设 \(N=12\times 10^k\),那么显然有:

性质1:\(F_{cN}\equiv 0(\bmod\ 10^k)\)

那么就有 \(F_N^2\equiv 0(\bmod\ 10^{2k})\),根据 \(F_{n+m+1}=F_nF_m+F_{n+1}F_{m+1}\),可以推得:

\[\begin{aligned} F_{2N+1}&=F_{N+1}^2+F_N^2\\&\equiv F_{N+1}^2(\bmod\ 10^{2k})\\ F_{3N+1}&=F_{2N+1}F_{N+1}+F_{2N}F_N\\&\equiv F_{N+1}^2\times F_{N+1}\\&=F_{N+1}^3(\bmod\ 10^{2k})\\\dots\\ F_{cN+1}&=F_{(c-1)N+1}F_{N+1}+F_{(c-1)N}F_N\\&\equiv F_{N+1}^{c-1}\times F_{N+1}\\&=F_{N+1}^c(\bmod\ 10^{2k}) \end{aligned}\]

那么就有了性质2:

性质2:\(F_{cN+1}\equiv F_{N+1}^c(\bmod\ 10^{2k})\)

然后我们又会发现一个神秘性质:

性质3:定有正整数 \(10\not|\ t\),满足 \(F_{N+1}=10^k8t+1\)

由于 \(F_{N+1}^c\) 的高次项都含有 \(10^{2k}\),所以就有了第四个性质:

性质4:\(F_{cN+1}\equiv 10^k8ct+1(\bmod\ 10^{2k})\)

考虑构造 \(F_{bi+e}=(ai+d)10^p+1\),这样就可以满足题目要求了。设 \(x=125t^{-1}a\bmod 10^9,y=125t^{-1}d\bmod 10^9,b=xN+1,e=yN\),则有:

\[\begin{aligned} F_{bi+e}&=F_{(xi+y)N+1}\\ &\equiv 10^9\times 8(xi+y)t+1\\ &=10^{12}(ai+d)+1(\bmod 10^{18}) \end{aligned}\]

所以 \(b=xN+1,e=yN\) 是一组合法解。

时间复杂度可以做到 \(O(1)\)

#include<bits/stdc++.h>
#define int unsigned long long
using namespace std;
int n,a,d,c=368131125,k=1.2e10,p=1e9;
signed main(){
	ios::sync_with_stdio(0);
	cin.tie(0),cout.tie(0);
	cin>>n>>a>>d;
	cout<<a*c%p*k+1<<" "<<d*c%p*k;
	return 0;
} 
posted @   长安一片月_22  阅读(3)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
点击右上角即可分享
微信分享提示