[CF1264F] Beautiful Fibonacci Problem 题解
1.ABC323E Playlist 题解2.CF935D Fafa and Ancient Alphabet 题解3.[ABC297F] Minimum Bounding Box 2 题解4.[CF696B] Puzzles 题解5.CF145C Lucky Subsequence 题解6.CF57C Array 题解7.[ABC259F] Select Edges 题解8.CF895C Square Subsets 题解9.CF1837E Play Fixing 题解10.[ARC148C] Lights Out on Tree 题解11.[ABC227E] Swap 题解12.[JOI 2020 Final] 火事 题解13.[CF455D] Serega and Fun 题解14.[ABC213G] Connectivity 2 题解15.[CF1981E] Turtle and Intersected Segments 题解16.[CF603E] Pastoral Oddities 题解17.[CF576E] Painting Edges 题解18.[CF494D] Birthday 题解19.[CF901D] Weighting a Tree 题解20.[CF2018F] Speedbreaker Counting 题解21.[CF1819D] Misha and Apples 题解
22.[CF1264F] Beautiful Fibonacci Problem 题解
23.[CF1239E] Turtle 题解24.[CF1142E] Pink Floyd 题解25.[CF611H] New Year and Forgotten Tree 题解26.[CF51F] Caterpillar 题解27.[CF475E] Strongly Connected City 2 题解《关于在做图论题单时忽遇构造题的那些事》。
通过手模,我们可以发现第一个事情:
当 \(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;
}
合集:
CF/ATcoder 题解
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 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)