Codeforces 题面传送门 & 洛谷题面传送门

一道名副其实(beautiful)的结论题。

首先看到这道设问方式我们可以很自然地想到套用斐波那契数列的恒等式,注意到这里涉及到 \(F_{a+id}\),因此考虑斐波那契数列组合恒等式 \(F_{m+n+1}=F_mF_{n}+F_{m+1}F_{n+1}\),具体证明戳这里,这里就不再赘述了。

注意到此题还涉及后 \(18\) 位,也就是要将斐波那契数列的各种运算放到模 \(10^{18}\) 意义下进行,因此我们可以考虑找一下斐波那契数列在模 \(10^{18}\) 意义下的循环节,打个表可以发现斐波那契数列在模 \(10,100,1000,10000,100000,\cdots\) 意义下的循环节恰好是 \(60,300,1500,15000,150000\),后面依次乘 \(10\)(From my 题解 of Codeforces 193E)因此斐波那契数列在模 \(10^k(k\ge 3)\) 意义下的循环节为 \(1.5\times 10^k\),也就是说一定有 \(F_{1.5\times 10^k·i}\equiv 0\pmod{10^k}\),我们在下文中令 \(N=12\times 10^k\)(官方题解是 \(12\times 10^k\),至于为什么这么做我也不知道,反正对于我这种菜鸡而言,这种难度的题我只能搬官方题解/ll/wq),那么显然 \(1.5\times 10^k\mid N\),因此可以得到第一个非常 trivial 的结论:

Observation \(1\). \(F_{Ni}\equiv 0\pmod{10^k}(i\in\mathbb{N}_+)\)。

接下来我们考虑再来观察一些性质,可以注意到 \(F_{2N+1}=F_{N+1}^2+F_N^2\equiv F_{N+1}^2\pmod{10^{2k}}\),\(F_{3N+1}=F_{2N+1}F_{N+1}+F_{2N}F_N\equiv F_{2N+1}F_{N+1}\equiv F_{N+1}^3\pmod{10^{2k}}\),如此归纳下去可以得到一个普遍性的结论:

Observation \(2\). \(F_{xN+1}\equiv F_{N+1}^x\pmod{10^{2k}},x\in\mathbb{N}_+\)

接下来考虑探究一下这个 \(F_{N+1}\) 又有什么性质,有一个我也不知道怎么推出来(有哪位好心的鸽鸽教教蒟蒻这东西怎么证明啊 qwq/kel)的性质:

Observation \(3\). \(F_{N+1}\) 可以写成 \(8\times 10^k·t+1\) 的形式,其中 \(t\perp 10\)

证明不会

因此我们有 \(F_{xN+1}=F_{N+1}^x=(8\times 10^k·t+1)^x\),而我们暴力二项式定理将这东西展开就会发现平方项以上模 \(10^{2k}\) 都等于 \(0\),因此我们只用保留 \(1\) 次项和 \(0\) 次项即可,即

Observation \(4\). \(F_{xN+1}\equiv 8\times 10^k·t·x+1\pmod{10^{2k}}\)

接下来回到原问题,我们显然希望对每个 \(v=a+ix,i\in\mathbb{Z}\cap[0,n)\) 找到一个 \(p\) 满足 \(F_p\equiv v·10^u+q\pmod{10^{18}}\),其中 \(u\le 12,q<10^{u}\),这样原问题显然就做完了,因为这样从 \(10^u\) 位开始往后数一定可以得到 \(v\)。由于我们这些操作要放在模 \(10^{18}\) 意义下进行,因此我们取 \(k=9\),此时 \(N=1.2\times 10^{10}\),我们考虑令 \(X=125·t^{-1}·a\bmod{10^9},Y=125·t^{-1}·d\bmod{10^9}\),其中 \(t^{-1}\) 表示 \(t\) 在模 \(10^9\) 意义下的逆元,那么我们构造 \(b=XN+1,e=YN\) 符合题意,因为:

\[\begin{aligned}
&F_{b+ie}\\
=&F_{(X+iY)N+1}\\
\equiv&8·10^9·t·(X+iY)+1\\
\equiv&8·10^9·t·125·t^{-1}(a+id)+1\\
=&10^{12}·(10^9k+1)·(a+id)+1\\
\equiv&10^{12}·(a+id)+1\pmod{10^{18}}
\end{aligned}
\]

符合我们刚才的构造。

一句话来说就是 \(b=368131125a\bmod 10^9·1.2\times 10^{10}+1,e=368131125d\bmod 10^9+1.2\times 10^{10}\)

于是我们就做完了这个难度 3.5k 的题(

代码(只有短短的 8 行):

#include <cstdio>
int n,a,d;
unsigned long long m=368131125,mod=1e9,x=1.2e10;
int main(){
scanf("%d%d%d",&n,&a,&d);
printf("%llu %llu\n",m*a%mod*x+1,m*d%mod*x);
return 0;
}

Codeforces 1264F - Beautiful Fibonacci Problem(猜结论+找性质)的更多相关文章

  1. Codeforces 1461F - Mathematical Expression(分类讨论+找性质+dp)

    现场 1 小时 44 分钟过掉此题,祭之 大力分类讨论. 如果 \(|s|=1\),那么显然所有位置都只能填上这个字符,因为你只能这么填. scanf("%d",&n);m ...

  2. Codeforces Round #259 (Div. 1) A. Little Pony and Expected Maximum 数学公式结论找规律水题

    A. Little Pony and Expected Maximum Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://codeforces.c ...

  3. Tetrahedron(Codeforces Round #113 (Div. 2) + 打表找规律 + dp计数)

    题目链接: https://codeforces.com/contest/166/problem/E 题目: 题意: 给你一个三菱锥,初始时你在D点,然后你每次可以往相邻的顶点移动,问你第n步回到D点 ...

  4. 【CSP模拟赛】独立集(最长上升子序列&大力猜结论)

    题目描述 有一天,一个名叫顺旺基的程序员从石头里诞生了.又有一天,他学会了冒泡排序和独 立集.在一个图里,独立集就是一个点集,满足任意两个点之间没有边.于是他就想把这两 个东西结合在一起.众所周知,独 ...

  5. Atcoder Grand Contest 031 D - A Sequence of Permutations(置换+猜结论)

    Atcoder 题面传送门 & 洛谷题面传送门 猜结论神题. 首先考虑探究题目中 \(f\) 函数的性质,\(f(p,q)_{p_i}=q_i\leftarrow f(p,q)\circ p= ...

  6. Applying Eigenvalues to the Fibonacci Problem

    http://scottsievert.github.io/blog/2015/01/31/the-mysterious-eigenvalue/ The Fibonacci problem is a ...

  7. [codeforces 528]B. Clique Problem

    [codeforces 528]B. Clique Problem 试题描述 The clique problem is one of the most well-known NP-complete ...

  8. Codeforces 55D Beautiful Number

    Codeforces 55D Beautiful Number a positive integer number is beautiful if and only if it is divisibl ...

  9. codeforces.com/contest/325/problem/B

    http://codeforces.com/contest/325/problem/B B. Stadium and Games time limit per test 1 second memory ...

随机推荐

  1. 爬虫逆向基础,理解 JavaScript 模块化编程 webpack

    关注微信公众号:K哥爬虫,QQ交流群:808574309,持续分享爬虫进阶.JS/安卓逆向等技术干货! 简介 在分析一些站点的 JavaScript 代码时,比较简单的代码,函数通常都是一个一个的,例 ...

  2. C# 如何使用代码添加控件及控件事件

    1.首先简单设计一下界面: 添加了Click事件 <Window x:Class="WpfApp.MainWindow" xmlns="http://schemas ...

  3. python png图片生成gif

    有时候写代码就是这样别人把代码写好你在后面加一个句号就行了 我很懒不想写成函数,你自己来吧.有注释就不错了 这个依赖一个图像处理库pillow,轮子就是轮他不是车 import imageio imp ...

  4. 【二食堂】Beta - Scrum Meeting 1

    Scrum Meeting 1 例会时间:5.13 18:30~18:50 进度情况 组员 当前进度 今日任务 李健 1. 查阅资料,解决划词勾选和右键菜单的问题issue2. 修复了Alpha阶段的 ...

  5. linux下命令拼接

    前言:我个five,一道特别简单的拼接题没有做出来,我吐了,不过也是涨知识了 直接切入正题了 linux命令是可以拼接的,也就是说在一个system("???")下我们的???可以 ...

  6. 「刷题」THUPC泛做

    刷了一下,写一下. T1. 天天爱射击 可以这样想. 我们二分一下每一块木板在什么时刻被击碎. 然后直接用主席树维护的话是\(O(nlog^2n)\)的. 会\(T\),而且是一分不给那种... 那么 ...

  7. 运用Tomcat创建第一个web项目

    一.了解Web服务器软件 在部署tomcat前,先说一说web服务器软件是用来干什么的?简单来说,就是web容器,可以部署web项目,让用户通过浏览器来访问这些项目. 1.常见的javaweb服务器软 ...

  8. 21.10.12 test

    题目 **WOJ5110 ** 到 WOJ5113 校内自测没开捆绑,于是输出 -1 和 n! 的程序拿到了高分,我的得分也比期望得分略有提升 T1 problem a \(\color{red}{2 ...

  9. 从零开始 DIY 智能家居 - 基于 ESP32 的智能语音合成播报模块

    目录 前言 硬件选择 代码解析 获取代码 设备控制命令: 设备和协议初始化流程: 配置设备信息 回调函数注册 语音播报与设置流程 总结 前言 这里这么多设备,突然发现我做的好像都是传感器之类的居多好像 ...

  10. hdu 5175 Misaki's Kiss again(GCD和异或)

    题意: 给一个数N. 如果GCD(N,M) = N XOR M,则称M是一个kiss   1<=M<=N 问总共有多少个kiss.并且列出所有的值. 思路: 思路一:枚举M.有大量的GCD ...