HDU1005
来源:互联网 发布:python 接收上传图片 编辑:程序博客网 时间:2024/06/06 01:52
本题题意就是求第n项 符合 f(n) = ( A*f(n-1)+B*f(n-2) )MOD7 的值是多少
这道题可以用规律求解 也可以用矩阵快速幂求解
以下是快速幂的求解方法:
#include<bits/stdc++.h>using namespace std;struct m{int a[2][2];}ori,res;int A,b,n,x,y;m mul(m x,m y){m t;memset(t.a,0,sizeof(t.a));for(int i=0;i<2;i++){for(int j=0;j<2;j++){for(int k=0;k<2;k++){t.a[i][j]+=x.a[i][k]*y.a[k][j];}t.a[i][j]%=7;}}return t;}int main(){while(scanf("%d%d%d",&A,&b,&n),A||b||n){res.a[0][1]=0,res.a[1][0]=0;res.a[0][0]=1,res.a[1][1]=1;ori.a[0][0]=A,ori.a[0][1]=b;ori.a[1][0]=1,ori.a[1][1]=0;if(n<=2)cout<<1<<endl;else{n-=2;while(n){if(n&1)res = mul(res,ori);ori = mul(ori,ori);n>>=1;}printf("%d\n",(res.a[0][0]+res.a[0][1])%7);}}return 0;}
阅读全文
0 0
- HDU1005
- hdu1005
- hdu1005
- hdu1005
- HDU1005
- hdu1005
- HDU1005
- hdu1005
- hdu1005
- hdu1005
- HDU1005
- hdu1005
- HDU1005
- HDU1005
- HDU1005
- hdu1005
- hdu1005
- HDU1005
- 笔记9--CSS基础知识
- java 中的while循环
- LintCode 463.整数排序 II [快速排序基础应用]
- 常用的排序算法总结
- poj 1573 Robot Motion 模拟
- HDU1005
- Ubuntu安装navicat
- 单链表的插入,查找,删除
- rpm&&yum
- 把本地项目推送到github的命令
- 解决IDEA乱码问题
- JVM垃圾回收机制
- 【Android笔记】dump audio数据定位音频问题
- 808B