hdu 1021 矩阵快速幂
来源:互联网 发布:知之一字众妙之门 编辑:程序博客网 时间:2024/05/22 01:43
#include<cstdio>#include<iostream>#include<cstdlib>#include<cstring>#define LL long long#define MOD 3using namespace std;typedef struct{LL z[2][2];}matrix;matrix addmatrix(matrix a,matrix b){matrix x;memset(x.z,0,sizeof(x.z));for(int i=0;i<2;i++){for(int j=0;j<2;j++){x.z[i][j]+=a.z[i][j]+b.z[i][j];//x.z[i][j]%=MOD;}}return x;}matrix mulmatrix(matrix a,matrix b){matrix x;memset(x.z,0,sizeof(x.z));for(int i=0;i<2;i++){for(int j=0;j<2;j++){for(int k=0;k<2;k++){x.z[i][j]+=a.z[i][k]*b.z[k][j];x.z[i][j]%=MOD;}}}return x;}matrix powmatrix(matrix a,LL n){matrix x;memset(x.z,0,sizeof(x.z));for(int i=0;i<2;i++){x.z[i][i]=1;}while(n!=0){if(n&1){x=mulmatrix(x,a);}a=mulmatrix(a,a);n/=2;}return x;}int main(){int n;while(cin>>n){matrix a,b,res;a.z[0][0]=1;a.z[0][1]=1;a.z[1][0]=1;a.z[1][1]=0;b.z[0][0]=11;b.z[0][1]=0;b.z[1][0]=7;b.z[1][1]=0;if(n!=0){res=powmatrix(a,n-1);res=mulmatrix(res,b);//cout << res.z[0][0] << endl;if(res.z[0][0]%3==0)cout << "yes\n";elsecout << "no\n";}elsecout << "no\n";}}
阅读全文
0 0
- hdu 1021 矩阵快速幂
- 【矩阵快速幂】hdu 1575
- 【矩阵快速幂】hdu 1757
- hdu 2604 矩阵快速幂
- hdu-1575矩阵快速幂
- hdu 1575 矩阵快速幂
- hdu 1575(矩阵快速幂)
- hdu 3306 矩阵快速幂
- hdu 1757 矩阵快速幂
- hdu 1575 矩阵快速幂
- hdu 2855 矩阵快速幂
- hdu 3117 矩阵快速幂
- hdu 1005 矩阵快速幂
- hdu 4965 矩阵快速幂
- hdu 2793 矩阵快速幂
- HDU 5015(矩阵快速幂)
- hdu 5001 矩阵 快速幂
- hdu-5015(矩阵快速幂)
- MySQL乐观锁总结和实践
- 20171012
- LeetCode-Insert Interval
- Mybatis学习笔记-Mapped Statements collection does not contain value for 解决方法
- 【BZOJ3307】雨天的尾巴(树链剖分+树上差分+线段树)
- hdu 1021 矩阵快速幂
- sendmessage作用
- bzoj 3306: 树
- [python]json
- mysql的简单语句
- HDU 3849 Recognizing These Guys, We Find Social Networks Useful
- [codevs1725]探险
- Tensorflow笔记
- OC的深拷贝与浅拷贝--NSArray与NSMutableArray应该使用copy还是strong?