当前位置: 首页 > news >正文

水利建设与管理司网站企业网站建设如何去规划

水利建设与管理司网站,企业网站建设如何去规划,百度收录查询,世界上做的最好的前端网站【题目来源】https://www.acwing.com/problem/content/1305/http://poj.org/problem?id3070【题目描述】 大家都知道 数列吧,。现在问题很简单,输入 和 ,求 的前 项和 。【输入格式】 共一行,包含两个整数 和 。【输出格式】…

【题目来源】
https://www.acwing.com/problem/content/1305/
http://poj.org/problem?id=3070

【题目描述】
大家都知道 Fibonacci 数列吧,F_1=1,F_2=1,F_3=2,F_4=3,\cdots ,F_n=F_{n-1}+F_{n-2}。现在问题很简单,输入 nm,求 F_n 的前 n 项和 S_n \, mod \, m

【输入格式】
共一行,包含两个整数 nm

【输出格式】
输出前 n 项和 S_n \, mod \, m 的值。

【数据范围】
1\leq n \leq 2000000000,\\ 1 \leq m \leq1000000010

【输入样例】
5 1000

【输出样例】
12

【算法分析】
★ 矩阵快速幂加速递推
(1)已知 Fibonacci 数列递推式为 F_n=F_{n-1}+F_{n-2},但当 n 极大时,会超时。
故基于“
矩阵快速幂加速递推”的思路,改写数列递推式 F_n=F_{n-1}+F_{n-2} 为 [F_n \quad F_{n-1}]=[F_{n-1} \quad F_{n-2}] \begin{bmatrix} 1 & 1\\ 1 & 0 \end{bmatrix} =[F_{n-2} \quad F_{n-3}] \begin{bmatrix} 1 & 1\\ 1 & 0 \end{bmatrix} \begin{bmatrix} 1 & 1\\ 1 & 0 \end{bmatrix} =\cdots =[F_1,F_0] \begin{bmatrix} 1 & 1\\ 1 & 0 \end{bmatrix}^{n-1}
改写后的递推式对应的 LaTex 代码为:

[F_n \quad F_{n-1}]=[F_{n-1} \quad F_{n-2}] 
\begin{bmatrix}
1 & 1\\ 
1 & 0
\end{bmatrix}
=[F_{n-2} \quad F_{n-3}] 
\begin{bmatrix}
1 & 1\\ 
1 & 0
\end{bmatrix} 
\begin{bmatrix}
1 & 1\\ 
1 & 0
\end{bmatrix}
=\cdots =[F_1,F_0]
\begin{bmatrix}
1 & 1\\ 
1 & 0
\end{bmatrix}^{n-1}

(2)若令 X_n=[F_n \quad F_{n-1}], \, X_1=[F_1 \quad F_0], \, A=\begin{bmatrix} 1 & 1\\ 1 & 0 \end{bmatrix},则有 \textcolor{red} {X_n=X_1\times A^{n-1} }
据此公式可知,首先求出 A^{n-1} \, mod \, p,然后用 X_1 左乘,便可得到 X_n,而 X_n 的第一个元素即为 F_n注意:标红的公式,技巧在于使用了 LaTex 命令: 
\textcolor{red} {公式}

\textcolor{red} {X_n=X_1\times A^{n-1}}


★ 矩阵快速幂模板:https://blog.csdn.net/hnjzsyjyj/ar左乘ticle/details/143227091


【算法代码】

#include<bits/stdc++.h>
using namespace std;typedef long long LL;
LL A[2][2]= {{1,1},{1,0}
};
LL ans[2]= {1,0}; //save answerint n,m;//Column matrix A * matrix B
void mul1(LL A[], LL B[][2]) {LL t[2]= {0};for(int i=0; i<2; i++)for(int j=0; j<2; j++)t[i]+=A[j]*B[i][j]%m;for(int i=0; i<2; i++)A[i]=t[i]%m;
}//matrix A * matrix B
void mul2(LL A[][2], LL B[][2]) {LL t[2][2]= {0};for(int i=0; i<2; i++)for(int j=0; j<2; j++)for(int k=0; k<2; k++)t[i][j]+=A[i][k]*B[k][j]%m;for(int i=0; i<2; i++)for(int j=0; j<2; j++)A[i][j]=t[i][j]%m;
}int main() {scanf("%d%d",&n,&m);n+=2; //get f[n+2]while(n) { //fastPowif(n & 1) mul1(ans,A);mul2(A,A);n>>=1;}printf("%lld\n", ans[1]-1); //ans[1] is f[n+2]return 0;
}/*
in:
5 1000out:
12
*/



【参考文献】
https://www.acwing.com/blog/content/25/
https://blog.csdn.net/hnjzsyjyj/article/details/143227091
https://www.cnblogs.com/yijiull/p/6641422.html

https://www.acwing.com/solution/content/15121/

 

http://www.yayakq.cn/news/438607/

相关文章:

  • 怀化网站建设联系方式网站建设需要平台
  • paypal可做网站郑州加盟网站建设
  • 现在手机网站用什么做的好社交网络营销的特点
  • 蜂蜜网站建设网站 关键词库
  • 无锡企业网站设计做网站公司名字
  • 江苏 做网站中国网络运营商排名
  • 前端电商网站登录界面怎么做百度百家号登录入口
  • 这么建设新的网站光明楼网站建设
  • 做直播网站需要证书吗做一个网站花2万贵吗
  • 网络公司企业网站模板wordpress自定义文章排序
  • 网站优化就是搜索引擎优化定制网站前准备
  • 单页 网站 模板图片制作生成器
  • 一起做网店的类似网站WordPress动态二维码插件
  • 舟山网站建设流程网站文字设计
  • 邢台市路桥建设公司网站专做logo网站叫什么地方
  • 公司网站建设申请一般网站模块
  • 成都教育网站建设微商营销宝app下载
  • 开通网站必须做域名空间郑州云帆网站设计
  • 有没有专门做纸箱的网站福利公众号
  • 网站开发现在什么软件好做动漫主题的网站
  • 怎么联系创意设计网站wordpress配置虚拟主机
  • 旅游网站制作素材设计学校排名中国
  • 做算法题的网站网站和新媒体建设方案
  • 编程常用网站天津网站建设代理商
  • 网站建设开票单位王也天个人资料
  • 徐州网站制作怎么做hao123网址导航
  • 站长工具seo排名网站后台用什么程序做
  • 深圳网站建设ucreator网站规划的意义
  • 北京做网站推广一个月多少钱wordpress dream chaser
  • 滨州淄博网站建设网络平台推广具体是怎么推广