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. 微信小程序中路由跳转

    一.是什么 微信小程序拥有web网页和Application共同的特征,我们的页面都不是孤立存在的,而是通过和其他页面进行交互,来共同完成系统的功能 在微信小程序中,每个页面可以看成是一个pageMo ...

  2. 梦开始的地方(Noip模拟3) 2021.5.24

    T1 景区路线规划(期望dp/记忆化搜索) 一看题目发现肯定是概率期望题,再仔细想想这三天做的题,就知道是个期望dp. 考试思路(错): 因为聪聪与可可的10分打法根深蒂固,导致在考试时想到了用深搜( ...

  3. sum-root-to-leaf-numbers leetcode C++

    Given a binary tree containing digits from0-9only, each root-to-leaf path could represent a number. ...

  4. cf17B Hierarchy(额,,,水)

    题意: Nick's company employed n people. Now Nick needs to build a tree hierarchy of «supervisor-surbod ...

  5. HashMap 中的一个“坑”!

    最近公司新来了一个小伙伴,问了磊哥一个比较"奇怪"的问题,这个问题本身的难度并不大,但比较"隐蔽",那究竟是什么问题呢?接下来我们一起来看. ​ 起因 最近公司 ...

  6. 完美解决Github网页打开超慢的问题

    由于某些原因,国内访问Github会异常缓慢,在clone仓库时甚至只有10k以下的速度,下载半天有时还会失败需要从头再来,甚是让人恼火.本文介绍通过修改系统hosts文件的办法,绕过国内dns解析, ...

  7. sm2加密

    import java.math.BigInteger; import java.security.NoSuchAlgorithmException; import java.security.Sec ...

  8. 第一天 python入门 基础 “”“Hello World”和if-elif的使用、数据类型

    (1)第一个程序"""Hello World" 实现python环境打印输出:Hello World 程序: print("Hello World&q ...

  9. Python基础(普通函数及参数)

    # def my_abs(x): # if not isinstance(x,(int,float)):#参数类型做检查,只允许整数和浮点数类型的参数.数据类型检查可以用内置函数isinstance( ...

  10. 开源一个由.netcore/.net framework4.6开发的saas微商城+独立部署版本微小程序商城

    一.项目介绍 开源一款基于.NET4.6开发的一款完整的微信商城SAAS平台,前端支持小程序.h5,由前端商城,商户管理后台,平台管理后台三大块组成,sass功能完善,支持商户拖拽式零代码创建并提交上 ...