递推 hdu 3411
http://blog.csdn.net/wust_xhj/article/details/47779539
怎么推可以看这里
f[0]=0
f[1]=1
[0,1]* | 0 q |(n-1)=[f(n-1),f(n)]
| 1 q-1|
跑一下快速幂
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<math.h> using namespace std;
typedef long long ll;
#define MAXN 105 struct node
{
ll z[][];
};
ll Quick(ll a,ll b,ll c)
{
ll ans=;
while(b>)
{
if(b%==)
ans=(ans*a)%c;
b/=;
a=(a*a)%c;
}
return ans;
}
ll p;
node mou(node a,node b)
{
node c;
for(int i=;i<;i++)
{
for(int j=;j<;j++)
{
ll sum=;
for(int k=;k<;k++)
sum=(sum+a.z[i][k]*b.z[k][j])%p;
c.z[i][j]=sum;
}
}
return c;
}
int main()
{
ll x1,y1,z1,y2,z2;
while(scanf("%lld%lld%lld",&x1,&y1,&z1)!=EOF)
{
if(x1==-&&y1==-&&z1==-)
break;
scanf("%lld%lld%lld",&y2,&z2,&p);
ll q=(Quick(x1,y1,p)+z1)%p;
node s,a,ans;
ans.z[][]=;
ans.z[][]=;
ans.z[][]=;
ans.z[][]=;
a.z[][]=;
a.z[][]=q;
a.z[][]=;
a.z[][]=q-;
s=a;
while(z2>)
{
if(z2%==)
ans=mou(ans,a);
z2=z2/;
a=mou(a,a);
}
for(int i=;i<y2;i++)
{
ans=mou(s,ans);
s=mou(s,s);
}
printf("%d\n",ans.z[][]); }
return ;
}
递推 hdu 3411的更多相关文章
- 递推 hdu 1396
给你边长为n的等边三角形 算有几个三角形 z[1]=1; 第N层 z[n] 1 n-1层 z[n-1] 2 2*n-1 个小的 3 新产生的 正的>1的三角形 n*(n-1)/2; ...
- 递推 hdu 1330
http://www.cnblogs.com/rainydays/archive/2013/01/16/2862235.html 看样例的答案 #include<stdio.h> #inc ...
- 递推 HDU 2569
考虑n-2 n-1 n z[n] 代表n个块 可行方案 1 n-2 和n-1 同 3*z[n-2] 2 n-2和n-1不同 2*(z[n-1]-z[n-2]); 减一减 然后可能是其中一种 *2 ...
- 递推 hdu 2064
z[n] n个盘子从1到3次数 先想2个的时候 1->2 2->3 1->2 3->2 2->1 2->3 1->2 2->3 显然 要先把上面n- ...
- 递推 hdu 2048
t 关于错排 共n个数 第n个 和一个交换 其他n-2错排 (n-1)*z[n-2]; n-1个错排 第n个和n-1个交换 (n-1)*z[n-1]; 求和 然后概率的话要除n! 一个一个除 ...
- 递推 HDU 1143
n%2==1 0 n%2==0 右边和左边没影响 右边的 * 左边的 z[n]=3*z[n-2]+2*z[n-4]+...2*z[0]; z[n-2]=3*z[n-4]+2*z[n-6]+...2*z ...
- HDU 2842 (递推+矩阵快速幂)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2842 题目大意:棒子上套环.第i个环能拿下的条件是:第i-1个环在棒子上,前i-2个环不在棒子上.每个 ...
- hdu 1465:不容易系列之一(递推入门题)
不容易系列之一 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Sub ...
- HDU 2085 核反应堆 --- 简单递推
HDU 2085 核反应堆 /* HDU 2085 核反应堆 --- 简单递推 */ #include <cstdio> ; long long a[N], b[N]; //a表示高能质点 ...
随机推荐
- PHP 装饰器模式
装饰器模式:是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能. [装饰器模式中主要角色] 抽象组件角色(Component):定义一个对象接口,以规范准备接受附加责任的对象,即可以给这 ...
- Web Worker javascript多线程编程(一)
什么是Web Worker? web worker 是运行在后台的 JavaScript,不占用浏览器自身线程,独立于其他脚本,可以提高应用的总体性能,并且提升用户体验. 一般来说Javascript ...
- 炫酷的html5(Drag 和 drop)拖放
在 HTML5 中,拖放是标准的一部分,任何元素都能够拖放.也是一种常见的特性,即抓取对象以后拖到另一个位置. 浏览器支持 Internet Explorer 9.Firefox.Opera 12.C ...
- 这个图片切换动画只用CSS3实现
体验效果:http://hovertree.com/texiao/css3/39/ 这是一个使用纯CSS3实现的图文切换效果,没使用js脚本.点击左右箭头或者索圆点引按钮可以切换内容. 本特效中使用到 ...
- JS高程4.变量,作用域和内存问题(2)执行环境及作用域
1.执行环境:执行环境定义了变量或函数有权访问的其他数据,决定了它们各自的行为, 每个执行环境都有一个与之相关联的变量对象,环境中定义的所有变量和函数都保存在这个对象中. 2.全局执行环境: 最外围的 ...
- Android Weekly Notes Issue #218
Android Weekly Issue #218 August 14th, 2016 http://androidweekly.net/issues/issue-218 ARTICLES & ...
- iOS中NSLog输出格式大全
iOS开发中的输出格式大全: %@ 对象 %d, %i 整数%u 无符整形%f ...
- 在Java中使用xpath对xml解析
xpath是一门在xml文档中查找信息的语言.xpath用于在XML文档中通过元素和属性进行导航.它的返回值可能是节点,节点集合,文本,以及节点和文本的混合等.在学习本文档之前应该对XML的节点,元素 ...
- jquery 金额转换成大写
<script language="javascript" type="text/javascript"> function Ara ...
- [问题]apparmor 问题导致mysql切换datadir目录失败
问题: 在mysql切换datadir后,mysql服务无法启动.出现错误说plugin表无法读取,需要用mysql_upgrade创建.但是其实不是这个问题. 原因: apparmor 会限制程序对 ...