题目链接:Recursive sequence

题意:给出前两项和递推式,求第n项的值。

题解:递推式为:$F[i]=F[i-1]+2*f[i-2]+i^4$

主要问题是$i^4$处理,容易想到用矩阵快速幂,那么$i^4$就需要从$(i-1)$转移过来。

$ i^4 = (i-1)^4 + 4*(i-1)^3 + 6*(i-1)^2 + 4*(i-1) + 1$

$f_i$ $f_{i-1}$ $i^4$ $i^3$ $i^2$ $i$ $1$ = $f_{i-1}$ $f_{i-2}$ $(i-1)^4$ $(i-1)^3$ $(i-1)^2$ $(i-1)$ $1$ *

$\begin{pmatrix}
1 & 1 & 0 & 0 & 0 & 0 & 0 \\
2 & 0 & 0 & 0 & 0 & 0 & 0 \\
1 & 0 & 1 & 0 & 0 & 0 & 0 \\
4 & 0 & 4 & 1 & 0 & 0 & 0 \\
6 & 0 & 6 & 3 & 1 & 0 & 0 \\
4 & 0 & 4 & 3 & 2 & 1 & 0 \\
1 & 0 & 1 & 1 & 1 & 1 & 1 \\
\end{pmatrix}$

 1 #include <cstdio>
 2 #include <cstring>
 3 #include <iostream>
 4 #include <algorithm>
 5 #define N 7
 6 using namespace std;
 7
 8 typedef long long ll;
 9 const ll mod=2147493647;
10
11 struct mat
12 {
13     ll m[N][N]=
14     {
15      {1,1,0,0,0,0,0},
16      {2,0,0,0,0,0,0},
17      {1,0,1,0,0,0,0},
18      {4,0,4,1,0,0,0},
19      {6,0,6,3,1,0,0},
20      {4,0,4,3,2,1,0},
21      {1,0,1,1,1,1,1}
22     };
23 };
24
25 mat mul(mat a,mat b)
26 {
27     mat ans;
28     int i,j,k;
29     for(i=0;i<N;i++)
30     for(j=0;j<N;j++)
31     ans.m[i][j]=0;
32
33     for(i=0;i<N;i++)
34     for(j=0;j<N;j++)
35     for(k=0;k<N;k++)
36     ans.m[i][j]=(ans.m[i][j]+a.m[i][k]*b.m[k][j])%mod;
37     return ans;
38 }
39
40 ll matpow(int p,ll A,ll B)
41 {
42     mat ans,tmp;
43     int i,j;
44     for(int i=0;i<N;i++)
45     for(int j=0;j<N;j++)
46     ans.m[i][j]=0;
47     p-=2;
48     ans.m[0][0]=B;ans.m[0][1]=A;
49     ans.m[0][2]=16;ans.m[0][3]=8;ans.m[0][4]=4;ans.m[0][5]=2;ans.m[0][6]=1;
50     while(p)
51     {
52         if(p&1) ans=mul(ans,tmp);
53         tmp=mul(tmp,tmp);
54         p=p>>1;
55     }
56     return ans.m[0][0];
57 }
58
59 int main(){
60     int t;
61     scanf("%d",&t);
62     while(t--){
63         ll M,A,B;
64         scanf("%lld%lld%lld",&M,&A,&B);
65         printf("%lld\n",matpow(M,A,B)%mod);
66     }
67     return 0;
68 }

View Code

转载于:https://www.cnblogs.com/ehanla/p/9807970.html

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

  1. 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] 类似于斐波那契数列的递推式子吧, 但 ...

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

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

  3. Recursive sequence(矩阵快速幂)

    这就是矩阵的魅力吗,爱了爱了 题 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<iostream> #i ...

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

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

  5. HDU 5950——Recursive sequence

    Recursive sequence 题意:给定起始的两个数a,b,求第n个数%mod 思路: 第一眼看出来是矩阵快速幂,不过当时没推出来(其实推了一半把自己给否定了) 正解是,根据二项式定理,对于f ...

  6. hdu 2842 Chinese Rings 矩阵快速幂

    分析: 后面的环能不能取下来与前面的环有关,前面的环不被后面的环所影响.所以先取最后面的环 设状态F(n)表示n个环全部取下来的最少步数 先取第n个环,就得使1~n-2个环属于被取下来的状态,第n-1 ...

  7. HDU - 4990 Reading comprehension(矩阵快速幂,水题)

    题目链接:点击查看 题目大意:给出一段程序,进行优化后提交 题目分析:其实就是找规律,大水题一个,偶尔也是需要做做水题找找自信(逃) 先将题目中的程序拿下来,跑上100项,然后拿到oeis里找一下规律 ...

  8. HDU - 5015 233 Matrix(矩阵快速幂)

    题目链接:点击查看 题目大意:初始化:第一行依次为233,2333,23333....第一列依次为a0,a1,a2....(题目中会给出),再给出递推公式:,求矩阵中第n行m列的数字是多少 题目分析: ...

  9. 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里是不变的,可以数论分块,再在每一段里 ...

最新文章

  1. 希捷期望HAMR实现其营收的增长
  2. 分析文件上传过程中的HTTP头部
  3. vsftpd 默认配置文件
  4. 18.了解各种与排序有关的选择
  5. Maven 打包过滤掉jar包、class文件和指定jsp文件
  6. Linux Repositories 2
  7. 什么是广告?为什么我们讨厌广告?
  8. 深度学习实战之车牌识别项目
  9. Docker的bridge和macvlan两种网络模式
  10. 公众号敏感词检测工具
  11. 自走棋突然显示服务器无法定位,刀塔自走棋服务器无法定位游戏会话_刀塔自走棋服务器无法定位游戏会话怎么回事_玩游戏网...
  12. fn1-call-call-fn2-面试题
  13. 计算机软件被放进回收站,电脑不能把文件放入回收站只能永久删除怎么办?
  14. 【windows7桌面图标蓝底】4步帮你去掉
  15. Mysql根据汉字英文字母进行排序
  16. hive hive beeline常用参数
  17. 股权、期权和原始股傻傻分不清楚?一文帮你安排的明明白白!
  18. SqlServer计算2个时间的间隔时间(工作日时间),不包括法定节假日和周末
  19. 什么是编程语言的强类型,弱类型
  20. Spark大数据平台应用实战

热门文章

  1. PHP递归删除目录及目录下的文件
  2. BZOJ1018 堵塞的交通(线段树)
  3. eclipse中添加svn插件
  4. 很口语I'll be back
  5. LeetCode(944)——删列造序(JavaScript)
  6. HIT Software Construction Review Notes(3-1 Data Type and Type Checking)
  7. 零基础带你学习MySQL—修改表(六)
  8. 力扣 根据数字二进制下1的数目排序
  9. OnePlus是什么
  10. G-SYNC技术是什么