1574 广义斐波那契数列

 时间限制: 1 s
 空间限制: 256000 KB
 题目等级 : 钻石 Diamond
 
 
题目描述 Description

广义的斐波那契数列是指形如an=p*an-1+q*an-2的数列。今给定数列的两系数p和q,以及数列的最前两项a1和a2,另给出两个整数n和m,试求数列的第n项an除以m的余数。

输入描述 Input Description

输入包含一行6个整数。依次是p,q,a1,a2,n,m,其中在p,q,a1,a2整数范围内,n和m在长整数范围内。

输出描述 Output Description

输出包含一行一个整数,即an除以m的余数。

样例输入 Sample Input

1 1 1 1 10 7

样例输出 Sample Output

6

/*
矩阵乘法模板
跟斐波那契差不多
就是初始化难理解
静下心来推推式子,然后明确a1,a2是最后才乘上的就好了
*/
#include<iostream>
#include<cstdio>
#define ll long long using namespace std;
int n,mod,q,p,a1,a2;
struct node
{
ll m[][];
}ans,base; ll init()
{
ll x=,f=;char c=getchar();
while(c>''||c<''){if(c=='-')f=-;c=getchar();}
while(c>=''&&c<=''){x=x*+c-'';c=getchar();}
return f*x;
} node mul(node a,node b)
{
node tmp;
for(int i=;i<;i++)
for(int j=;j<;j++)
{
tmp.m[i][j]=;
for(int k=;k<;k++)
tmp.m[i][j]=(tmp.m[i][j]+a.m[i][k]*b.m[k][j])%mod;
}
return tmp;
} void qw(ll n)
{
while(n)
{
if(n&) ans=mul(ans,base);
base=mul(base,base);n>>=;
}
} int main()
{
p=init();q=init();
a1=init();a2=init();
n=init();mod=init();
ans.m[][]=;ans.m[][]=q;
ans.m[][]=;ans.m[][]=p;
base.m[][]=;base.m[][]=q;
base.m[][]=;base.m[][]=p;
n-=;
qw(n); printf("%lld\n",(a1*ans.m[][]%mod+a2*ans.m[][]%mod)%mod);
return ;
}
数据范围及提示 Data Size & Hint

数列第10项是55,除以7的余数为6。

最新文章

  1. java.io.IOException: mark/reset not supported
  2. java基础2_运算符,选择语句
  3. How to implement a neural network
  4. http协议(一)基础知识
  5. 【Android 界面效果45】ViewPager源码分析
  6. using 语句中使用的类型必须可隐式转换为“System.IDisposable”
  7. notepad++搜索结果不显示line XX的方法
  8. 织梦调用seotitle
  9. Hive数据仓库笔记(二)
  10. Working with bounded Task Flows
  11. 从__acrt_first_block == header 谈起,记录dll链接不一致的问题
  12. 如何将数据库中存的树转化为树形列表(以easyui的tree为例)
  13. CentOS7编译安装php7.1
  14. SignalR 行实时通信遇到的
  15. java基础 -- 经典排序
  16. java集合: jdk1.8的hashMap原理简单理解
  17. Android事件总线(二)EventBus3.0源码解析
  18. windows service 的错误 错误 14001:
  19. centos6.5虚拟机快照技术
  20. KInect AR沙盒制作的一点小经验

热门文章

  1. 什么是 C 和 C ++ 标准库?
  2. DTD 文件的引入
  3. Vmware下的Linux系统,安装WPS报错:[Errno 256] No more mirrors to try
  4. linux strings-在对象文件或二进制文件中查找可打印的字符串
  5. SQL函数小记
  6. Pr&#252;fer序列和cayley定理
  7. i2c中应答信号信号总结
  8. SSH三种框架及表示层、业务层和持久层的理解(转)
  9. jQuery通过event获取点击事件的事件对象
  10. codeforces gym 100357 J (网络流)