【题目链接】

  • 点击打开链接

【思路要点】

  • 用Cayley-Hamilton定理优化线性递推。
  • 时间复杂度O(N2LogK)O(N2LogK)O(N^2LogK),其中N=2000,K=1018N=2000,K=1018N=2000,K=10^{18}。

【代码】


#include<bits/stdc++.h>using namespace std;
const int MAXN = 4005;
const int P = 20092010;
template <typename T> void chkmax(T &x, T y) {x = max(x, y); }
template <typename T> void chkmin(T &x, T y) {x = min(x, y); }
template <typename T> void read(T &x) {x = 0; int f = 1;char c = getchar();for (; !isdigit(c); c = getchar()) if (c == '-') f = -f;for (; isdigit(c); c = getchar()) x = x * 10 + c - '0';x *= f;
}
template <typename T> void write(T x) {if (x < 0) x = -x, putchar('-');if (x > 9) write(x / 10);putchar(x % 10 + '0');
}
template <typename T> void writeln(T x) {write(x);puts("");
}
int k, h[MAXN], now[MAXN], res[MAXN];
void times(int *a, int *b) {static int tmp[MAXN];memset(tmp, 0, sizeof(tmp));for (int i = 0; i <= k; i++)for (int j = 0; j <= k; j++)tmp[i + j] = (tmp[i + j] + 1ll * a[i] * b[j]) % P;for (int i = 2 * k; i >= k; i--) {tmp[i - 1999] = (tmp[i - 1999] + tmp[i]) % P;tmp[i - 2000] = (tmp[i - 2000] + tmp[i]) % P;tmp[i] = 0;}memcpy(a, tmp, sizeof(tmp));
}
int main() {k = 2e3;for (int i = 1; i <= k; i++)h[i] = 1;res[0] = now[1] = 1;long long n = 1e18;n = n + 1 - k;while (n != 0) {if (n & 1) times(res, now);n >>= 1; times(now, now);}for (int i = k + 1; i <= 2 * k; i++)h[i] = (h[i - 1999] + h[i - 2000]) % P;int ans = 0;for (int i = 0; i <= k - 1; i++)ans = (ans + 1ll * res[i] * h[i + k]) % P;writeln(ans);return 0;
}

【PE258】A lagged Fibonacci sequence相关推荐

  1. 【BZOJ2813】奇妙的Fibonacci

    Description ​ Fibonacci数列是这样一个数列: F1 = 1, F2 = 1, F3 = 2 . . . Fi = Fi-1 + Fi-2 (当 i >= 3) ​ pty忽 ...

  2. oracle 序列开始为2,【图片】【求助】为啥Oracle的sequence 第一次插入表从2开始。。【java吧】_百度贴吧...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 SQL> select * from counter; ID---------- 1 SQL> drop table counter; 表已删 ...

  3. 【CodeForces】CF26B Regular Bracket Sequence

    题目地址: https://www.luogu.com.cn/problem/CF26B 题面翻译: 给出一个括号的序列,求最长的合法的子序列并输出. 原序列的长度≤106\le 10^6≤106 题 ...

  4. 【CTR】《Towards Universal Sequence Representation Learning for Recommender Systems》 (KDD‘22)

    <Towards Universal Sequence Representation Learning for Recommender Systems> (KDD'22) 序列推荐是根据用 ...

  5. 【转】[完全免费] 在线UML Sequence Diagram 时序图工具 - 教程第3部分

    时序图教程 甲序列图描述了一组对象之间的相互作用参与协作(或情况),布置成按时间顺序; 它通过它们的"生命线"和它们发送给对方的消息来显示参与交互的对象. 什么是UML中的序列图? ...

  6. 【最优化】黄金分割法与Fibonacci法

    (1)黄金分割法(0.618法) 基本思想:      它通过对试探点的函数值进行比较,使得包含极小点的区间不断缩短,当区间长度小到精度范围之内时,可以粗略地认为区间上各点的函数值均接近于极小值. 算 ...

  7. 【BZOJ】4355: Play with sequence

    传送门 http://www.lydsy.com/JudgeOnline/problem.php?id=4355 吉司机线段树(去年又在现场系列) 某Q:线段树带来的沉重打击 写得巨挫,下次肯定会去换 ...

  8. 【HDOJ】1021 Fibonacci Again_天涯浪子_新浪博客

    [题目]http://acm.hdu.edu.cn/showproblem.php?pid=1021 [报告] 题意是问F[i]是否能被3整除. 根据 (a+b)%m=(a%m+b%m)%m 原则(具 ...

  9. 序列(【CCF】NOI Online能力测试 提高组第一题)

    [题目描述] 小 D 有一个长度为 n 的整数序列 ai(下标从 1 开始编号,下同),她想通过若干次操作把它变成序列 bi. 小 D 有 m种可选的操作,第 i 种操作可使用三元组 (ti,ui,v ...

最新文章

  1. ID3、C4.5、C5.0、CART决策树区别
  2. Java如何转换protobuf-net中的bcl.DateTime对象
  3. 太强了!这个 Jupyter notebook 离线工具可以用一辈子!
  4. 笔记本软件页面分辨率低_AMD宠粉日 适合设计师的高色域笔记本电脑
  5. python文件名匹配
  6. linux 嵌入式 人工智能,嵌入式人工智能有哪些相关技术
  7. 再谈new functionName
  8. 3D物理引擎JiglibFlash
  9. 使用ConfigurationManager来写自己的配置文件
  10. android 音效下载地址,V4A+Dolby Atmos安卓全局音效
  11. SciML求解简谐振动的微分方程
  12. 星光大道视频播放器精品版
  13. 单目相机三维姿态解算
  14. 基于Arduino IDE开发的LD3320语音识别模块
  15. node python做游戏服务哪个适合做服务端_当前的几种开源游戏服务端介绍
  16. 提高图片的清晰度和加载速度
  17. 周期循环图像边界算法
  18. 宝塔linux面板时区不正确怎么修改
  19. MySQL like模糊匹配是否走索引
  20. win7怎么设置计算机的性能,windows7旗舰版电脑如何为电脑设置高性能计划

热门文章

  1. 2022.10.21 单词背诵
  2. ElasticSearch(ES)中的分片查询方式
  3. 跨行取款手续费上调 广东建行农行每笔涨至4元
  4. 第二本第七章 Linux无人值守安装脚本kickstart
  5. 奔跑吧扑倒大作战服务器信息,奔跑吧扑倒大作战
  6. STM32F103C8T6通过ESP8266连接阿里云物联网平台(附代码)
  7. Nodejs学习路线图
  8. uGUI学习篇: UI元素的渲染与性能
  9. 两个ListMap中同下标的map去重合并
  10. 芥酸油酯的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告