https://www.luogu.org/problemnew/show/U16887

$f[1] + f[2] + f[3] + .... + f[n] = f[n + 2] - 1$

矩阵快速幂求出第n+2项即可

#include <bits/stdc++.h>

using namespace std;

#define gc getchar()
#define LL long long const LL mod = ; LL n, s; inline LL read(){
LL x = ; char c = gc;
while(c < '' || c > '') c = gc;
while(c >= '' && c <= '') x = x * + c - '', c = gc;
return x;
} struct Node{
LL m[][];
Node() { memset(m,,sizeof m);}
void clear(){for(int i = ; i <= n; i ++) m[i][i] = ;}
}; Node operator *(Node a, Node b){
Node ret;
for(int i = ; i <= n; i ++)
for(int j = ; j <= n; j ++)
for(int k = ; k <= n; k ++)
ret.m[i][j] = (ret.m[i][j] + a.m[i][k] * b.m[k][j]) % mod;
return ret;
} Node ksm(Node a, LL p){
Node ret; ret.clear();
while(p){
if(p & ) ret = ret * a;
a = a * a;
p >>= ;
}
return ret;
} int main()
{
s = read();
s += ;
n = ;
Node a, b;
a.m[][] = ; a.m[][] = ; a.m[][] = ; a.m[][] = ;
b.m[][] = ; b.m[][] = ;
Node Ans;
Ans = ksm(a, s - );
Node answer = Ans * b;
cout << answer.m[][] - ; return ;
}

最新文章

  1. EF Code First 一对多、多对多关联,如何加载子集合?
  2. 关于问题ld:library not found for -lXXX的错误
  3. Httpoxy远程代理感染漏洞 [转]
  4. 远程连接RabbitMQ失败
  5. C# 正则匹配domain
  6. jquery validate ajax submit form
  7. 一个LINUX狂人的语录(个人认为很精辟)
  8. R语言简单入门
  9. 文件上传~Uploadify上传控件
  10. android 后台附件下载
  11. CHAR 详解
  12. Access to the temp directory is denied. Identity &#39;NT AUTHORITY\NETWORK SERVICE&#39; under which XmlSerializer is running does not have sufficient permiss
  13. 还原NuGet程序包
  14. 芯灵思Sinlinx A64开发板Linux内核定时器编程
  15. Win10系列:VC++ Direct3D图形绘制1
  16. C# Owin初探 概念理解(一)
  17. linux命令(44):sed,vim;去掉文件中的^M 符号,去掉行首空格和制表符
  18. 6 ways to import data into SQL Server
  19. Android UI测量、布局、绘制过程探究
  20. 【IOI 2018】Werewolf 狼人

热门文章

  1. stdmap 用 at() 取值,如果 key 不存在,不好意思,程序崩溃。QMap 用 value()取值,如果 key 不存在,不会崩溃,你还可以指定默认值
  2. 用chattr命令防止系统中某个关键文件被修改
  3. Spring Cloud Alibaba学习笔记(7) - Sentinel规则持久化及生产环境使用
  4. Python windows环境 搭建问题
  5. C#ModBus Tcp 报文解析
  6. javascript -- 把按钮变成读秒倒计时
  7. H5 - flexbox 弹性盒布局和布局原理
  8. Django中使用geetest验证
  9. 剖析gcc -v输出
  10. 用js刷剑指offer(字符串的排列)