这就是矩阵的魅力吗,爱了爱了

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<string.h>
#include<vector>
#include<map>
#include<queue>
#include<stack>
#include<math.h>
#include<set>
#define N 100
#define LL long long
using namespace std;
const LL mod = 2147493647;
struct Mat
{LL m[10][10];
};
Mat a, e;
Mat Mul(Mat x, Mat y)
{Mat c;for (int i = 1; i <= 7; i++) {for (int j = 1; j <= 7; j++) {c.m[i][j] = 0;}}for (int i = 1; i <= 7; i++) {for (int j = 1; j <= 7; j++) {for (int k = 1; k <= 7; k++) {c.m[i][j] = c.m[i][j] % mod + x.m[i][k] * y.m[k][j] % mod;}}}return c;
}
Mat pow(Mat x, LL y)
{Mat ans;for (int i = 1; i <= 7; i++){for (int j = 1; j <= 7; j++){if (i == j)ans.m[i][i] = 1;else ans.m[i][j] = 0;}}while (y) {if (y & 1) ans = Mul(ans, x);x = Mul(x, x);y >>= 1;}return ans;
}
int main()
{int t;scanf("%d", &t);LL n, f1, f2;Mat f;for (int i = 1; i <= 7; i++){for (int j = 1; j <= 7; j++)f.m[i][j] = 0;}f.m[1][1] = 1, f.m[1][2] = 1;f.m[2][1] = 2;f.m[3][1] = 1, f.m[3][3] = 1;f.m[4][3] = 4, f.m[4][4] = 1;f.m[5][3] = 6, f.m[5][4] = 3, f.m[5][5] = 1;f.m[6][3] = 4, f.m[6][4] = 3, f.m[6][5] = 2, f.m[6][6] = 1;f.m[7][3] = 1, f.m[7][4] = 1, f.m[7][5] = 1, f.m[7][6] = 1, f.m[7][7] = 1;while (t--){scanf("%lld%lld%lld", &n, &f1, &f2);e.m[1][1] = f2, e.m[1][2] = f1, e.m[1][3] = 81, e.m[1][4] = 27, e.m[1][5] = 9, e.m[1][6] = 3, e.m[1][7] = 1;Mat ans = pow(f, n - 2);LL sum = 0;for (int i = 1; i <= 7; i++){sum += e.m[1][i] * ans.m[i][1] % mod;sum %= mod;}printf("%lld\n", sum);} return 0;
}

Recursive sequence(矩阵快速幂)相关推荐

  1. Codeforces 1106F Lunar New Year and a Recursive Sequence 矩阵快速幂,原根转化模意义下对数,BSGS

    文章目录 题意 题解 对数法转指数线性递推 原根与模意义下求对数 拔山盖世! 最终步骤 Problem Origin 狠搞了一个多星期,做出来之后仍然一知半解,写个博客重理思路. 题意 定义序列fff ...

  2. HDU - 5667 Sequence(矩阵快速幂+费马小定理降幂)

    题目链接:点击查看 题目大意:给出函数f(x): 现给出n,a,b,c,mod,求f(n)对mod取模后的结果 题目分析:这个题目相对于前几个题来说稍微加大了点难度,但还是挺水的一个题,首先我们可以对 ...

  3. HDU6395 Sequence(矩阵快速幂+数论分块)

    题意: F(1)=A,F(2)=B,F(n)=C*F(n-2)+D*F(n-1)+P/n 给定ABCDPn,求F(n) mod 1e9+7 思路: P/n在一段n里是不变的,可以数论分块,再在每一段里 ...

  4. CodeForces 392C Yet Another Number Sequence 矩阵快速幂

    题意: \(F_n\)为斐波那契数列,\(F_1=1,F_2=2\). 给定一个\(k\),定义数列\(A_i=F_i \cdot i^k\). 求\(A_1+A_2+ \cdots + A_n\). ...

  5. HDU 5950 Recursive sequence(矩阵快速幂)

    题目链接:Recursive sequence 题意:给出前两项和递推式,求第n项的值. 题解:递推式为:$F[i]=F[i-1]+2*f[i-2]+i^4$ 主要问题是$i^4$处理,容易想到用矩阵 ...

  6. Recursive sequence HDU - 5950 (递推 矩阵快速幂优化)

    题目链接 F[1] = a, F[2] = b, F[i] = 2 * F[i-2] + F[i-1] + i ^ 4, (i >= 3) 现在要求F[N] 类似于斐波那契数列的递推式子吧, 但 ...

  7. poj2778DNA Sequence (AC自动机+矩阵快速幂)

    转载请注明出处: http://www.cnblogs.com/fraud/           --by fraud DNA Sequence Time Limit: 1000MS   Memory ...

  8. UVA10689 Yet another Number Sequence【数列+矩阵快速幂】

    Let's define another number sequence, given by the following function: f(0) = a f(1) = b f(n) = f(n ...

  9. POJ 2778 DNA Sequence [AC自动机 + 矩阵快速幂]

    http://poj.org/problem?id=2778 题意:给一些只由ACGT组成的模式串,问有多少种长度为n且不含有给出的模式串的DNA序列. 自动机的状态转换可以看成一个有向图(有重边的) ...

最新文章

  1. AI一分钟 | Google预借京东卖音箱;AI Dota击败人类玩家;思必驰5亿融资搞芯片
  2. 浏览器的headers
  3. [转载]全面解读软件版本的标志
  4. CSS padding margin border属性讲解
  5. 【jzoj】2018.2.7NOIP普及组——某【BC】组模拟赛
  6. Qt5.7| C/C++ 超级简单一学就会的仿QQ宠物
  7. java书籍_非科班,自学java需要把软件工程的课程全部学习完吗?
  8. 分析及解决SQLServer死锁问题
  9. kotlin xml布局_Android工具栏教程– XML布局和Kotlin
  10. Linux电脑弹出网络认证,linux局域网Dr.COM宽带认证客户端上网指南
  11. 八大排序算法(原理+代码详解)Python版
  12. st7789 旋转_有没有人调过 ST7789V驱动的显示屏啊
  13. 75.【JavaWeb-03】
  14. 6岁女孩出口之乎者也 用《论语》典故批评妈妈
  15. GreatSQL vs MySQL性能测试来了,速围观~
  16. 微型计算机基础知识答案,第1章 微型计算机基础知识 题库和答案.doc
  17. 一期Go群问答-并发控制-数据竞争-错误与异常
  18. C++课本的练习题及答案(第五章)
  19. 什么软件可以修改PDF内容,PDF如何添加文本
  20. 数据透视表中巧用平均值计算及时妥投率

热门文章

  1. 生成IOS app专用密码教程
  2. VC6下miniblink应用开发简单实例
  3. 【考研计组】有符号数与无符号数之间的转换
  4. 2022年值得使用的 Node.js 框架
  5. android webview webp,在WebView中使用webp格式图片
  6. android 使用opencv4 图片相似度对比
  7. python之对比两张图像的相似度
  8. 考试酷解析——C4_Scope of a Variable
  9. 【数学期望】期望dp
  10. UE4解决万向锁问题