#include <iostream>
#include <algorithm>
#include <cmath>
#define MOD 7
#define N 2
using namespace std; struct Matrix
{
long long v[N][N];
}; //矩阵间的乘法%m
Matrix matrix_mul(Matrix A, Matrix B, long long m)
{
Matrix ans; for (int i = ; i < N; i++)
{
for (int j = ; j < N; j++)
{
ans.v[i][j] = ;
for (int k = ; k < N; k++)
{
ans.v[i][j] += (A.v[i][k] * B.v[k][j]) % m;
}
ans.v[i][j] %= m;
}
}
return ans;
} //矩阵快速幂c^n%m
Matrix matrix_pow(Matrix C, long long n, long long m)
{
Matrix ans = { , , , };//e
while (n)
{
if (n & )
ans = matrix_mul(ans, C, m);
C = matrix_mul(C, C, m);
n >>= ;
}
return ans;
} int main()
{
long long n;
int a, b;
cin >> a >> b >> n;
Matrix temp1 = { (a%MOD + MOD) % MOD, (b%MOD + MOD) % MOD, , };
Matrix temp2 = { , , , }; // temp2{f[2],0,f[1],0}!!!!! if (n < )
{
cout << << endl;
return ;
}
Matrix res = matrix_pow(temp1, n - , MOD);
res = matrix_mul(res, temp2, MOD);
cout << res.v[][] << endl;
return ;
}

51Nod 1126 求递推序列的第N项(矩阵快速幂)的更多相关文章

  1. [51nod 1126] 求递推序列的第N项 - 矩阵乘法

    #include <bits/stdc++.h> using namespace std; #define int long long const int mod = 7; struct ...

  2. [51NOD1126]求递推序列的第n项(矩阵快速幂)

    题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1126 存在参数a,b为负数的情况.这时候要这么处理: 根据mo ...

  3. 51nod 1126 求递推序列的第N项

    1126 求递推序列的第N项  基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题  收藏  关注 有一个序列是这样定义的:f(1) = 1, f(2) = 1, f( ...

  4. 51nod 1126 求递推序列的第N项 思路:递推模拟,求循环节。详细注释

    题目: 看起来比较难,范围10^9 O(n)都过不了,但是仅仅是看起来.(虽然我WA了7次 TLE了3次,被自己蠢哭) 我们观察到 0 <= f[i] <= 6 就简单了,就像小学初中学的 ...

  5. 51nod 1126 - 求递推序列的第N项 - [找规律]

    题目链接:https://cn.vjudge.net/problem/51Nod-1126 有一个序列是这样定义的:f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + ...

  6. 51nod 1126 求递推序列的第N项 && hdu - 1005 Number Sequence (求周期)

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1126 http://acm.hdu.edu.cn/showproblem ...

  7. 515Nod 1126 求递推序列的第n项【矩阵快速幂】

    有一个序列是这样定义的:f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7. 给出A,B和N,求f(n)的值. Input 输 ...

  8. 51nod1126 求递推序列的第N项

    求递推序列的第N项 有一个序列是这样定义的:f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7. 给出A,B和N,求f(n)的 ...

  9. 51nod1126 求递推序列的第N项【递推】

    有一个序列是这样定义的:f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7. 给出A,B和N,求f(n)的值. Input 输 ...

随机推荐

  1. LLVM的总结

    LLVM 写在前面的话:无意中看到的LLVM的作者Chris Lattner相关的介绍和故事,觉得很有意思就贴上来,如果不感兴趣,可以直接跳入下一章. 关于LLVM 如果你对LLVM的由来陌生,那么我 ...

  2. ZOJ - 3932 Handshakes 【水】

    题目链接 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3932 题意 给出 N 个人,然后 1-N 然后 从 1 - N ...

  3. SVN版本控制中.a无法提交问题

    1.首先xcode是默认忽略.a文件的.改变方法如下: 1⃣️. 打开终端,  在命令行中输入: vi ~/.subversion/config  来打开配置文件.2⃣️. 然后, 在[miscell ...

  4. Ubuntu增加Swap分区大小

    参考:http://blog.csdn.net/mznewfacer/article/details/7334592 以下摘自上述地址内容,并做了点小修改: 1.首先用命令free查看系统内 Swap ...

  5. 近期测试BUG总结

    前些日子上线了新版的app,在上线后发现了几个重大的bug,在此总结,在以后的测试工作中需要额外的关注. 需求流程bug 页面刷新bug 标签栏刷新bug 第一个bug出现的原因是产品需求与运营实际操 ...

  6. SQL server 备份/恢复/压缩 进度查询

    第一步,用 sp_who2 查出备份的sid(或在窗口中的连接属性中看) exec sp_who2 第二步,用以下查询获得运行情况(看 percent_complete列) SELECT sessio ...

  7. http://www.cnblogs.com/yaozhenfa/archive/2015/06/14/4574898.html

    笔者这里采用的是mongoDB官网推荐使用.net驱动: http://mongodb.github.io/mongo-csharp-driver/2.0/getting_started/quick_ ...

  8. UniCode转码

    <script type="text/javascript"> var GB2312UnicodeConverter = { ToUnicode: function ( ...

  9. @PathVariable @RequestParam @RequestHeader @CookieValue POJO Servlet API

  10. Tinyplay

    android里面的目录:external/tinyalsa 编译: 1. cd external/tinyalsa/ 2. vi Android.mk 3. mmm . 4. 拷贝出可执行文件 执行 ...