题解 P2673 《瞿葩的数字游戏》T1-数字王国的门神

link

题意

i=1nfi×10ni,n 在十进制下的自高到低第 l 位到第 r 位,其中 f 为 Fibonacci 数列。

数据范围:10lr2×105,rl+12×103

题解

奇妙的结论题。

因为 f0=0,不妨把原式表为 i=0nfi×10ni

观察式子的形式,感觉和 Fibonacci 数列 OGF 有点关系。

i=0nfi×10ni=10ni=0fi×10i=10ni=0fi×(101)i

发现右边这部分就是 Fibonacci 数列的 OGF F(x)=i=0fixi,众所周知 F(x)=x1xx2,把 101 带进去,算出是 1089×10n,感性理解后发现答案即为 1089 小数点后第 l 到第 r 位。

这里证一下 Fibonacci 数列的 OGF F(x)=x1xx2

fi={0i=01i=1fi1+fi2i>1,令 A=F(x),根据小学知识,我们可以有这样的变换:

A=i=0fixixA=i=0fixi+1xA=i=1fi1xix2A=i=0fixi+2x2A=i=2fi2xi

xA+x2A=f0x+i=2(fi1+fi2)xi=f0x+i=2fixi=i=2fixi=i=0fixif0f1x=Ax

AxAx2A=x(1xx2)A=xA=x1xx2

F(x)=x1xx2

#include <bits/stdc++.h>
using namespace std;
int l, r;
int main() {
    scanf("%d%d", &l, &r);
    int x = 10;
    for(int i = 1; i <= r; i++) {
        if(i >= l) printf("%d", x * 10 / 89);
        x = x * 10 % 89;
    }
    return 0;
}
posted @   Terac  阅读(1)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
点击右上角即可分享
微信分享提示