主要还是i^4化成一个(i+1)^4没遇到过,还是很基础的一题矩阵快速幂;

#include <bits/stdc++.h>
using namespace std;
typedef long long LL; const LL mod=2147493647; const int N=1e5+10; struct asd{
LL num[8][8];
}; asd mul(asd a,asd b)
{
asd ans;
memset(ans.num,0,sizeof(ans.num));
for(int i=0;i<7;i++)
for(int j=0;j<7;j++)
for(int k=0;k<7;k++)
ans.num[i][j]=(ans.num[i][j]+a.num[i][k]*b.num[k][j]%mod)%mod;
return ans;
} asd quickmul(LL g,asd x)
{
asd ans;
for(int i=0;i<7;i++)
for(int j=0;j<7;j++)
{
if(i==j)
ans.num[i][j]=1;
else
ans.num[i][j]=0;
}
while(g)
{
if(g%2)
ans=mul(ans,x);
x=mul(x,x);
g>>=1;
}
return ans;
} int main()
{
int T;
LL n,A,B;
scanf("%d",&T);
while(T--)
{
scanf("%lld%lld%lld",&n,&A,&B);
if(n==1)
{
printf("%lld\n",A%mod);
}
else if(n==2)
printf("%lld\n",B%mod);
else
{
asd tmp;
tmp.num[0][0]=1;tmp.num[0][1]=2;tmp.num[0][2]=1;tmp.num[0][3]=4;tmp.num[0][4]=6;tmp.num[0][5]=4;tmp.num[0][6]=1;
tmp.num[1][0]=1;tmp.num[1][1]=0;tmp.num[1][2]=0;tmp.num[1][3]=0;tmp.num[1][4]=0;tmp.num[1][5]=0;tmp.num[1][6]=0;
tmp.num[2][0]=0;tmp.num[2][1]=0;tmp.num[2][2]=1;tmp.num[2][3]=4;tmp.num[2][4]=6;tmp.num[2][5]=4;tmp.num[2][6]=1;
tmp.num[3][0]=0;tmp.num[3][1]=0;tmp.num[3][2]=0;tmp.num[3][3]=1;tmp.num[3][4]=3;tmp.num[3][5]=3;tmp.num[3][6]=1;
tmp.num[4][0]=0;tmp.num[4][1]=0;tmp.num[4][2]=0;tmp.num[4][3]=0;tmp.num[4][4]=1;tmp.num[4][5]=2;tmp.num[4][6]=1;
tmp.num[5][0]=0;tmp.num[5][1]=0;tmp.num[5][2]=0;tmp.num[5][3]=0;tmp.num[5][4]=0;tmp.num[5][5]=1;tmp.num[5][6]=1;
tmp.num[6][0]=0;tmp.num[6][1]=0;tmp.num[6][2]=0;tmp.num[6][3]=0;tmp.num[6][4]=0;tmp.num[6][5]=0;tmp.num[6][6]=1;
asd ans;
ans=quickmul(n-2,tmp);
LL res;
// printf("%lld %lld %lld \n",ans.num[0][0],ans.num[0][1],ans.num[0][2]);
res=((ans.num[0][0]*B%mod+ans.num[0][1]*A%mod)%mod+ans.num[0][2]*16%mod+ans.num[0][3]*8%mod+ans.num[0][4]*4%mod+ans.num[0][5]*2%mod+ans.num[0][6])%mod;
printf("%lld\n",res);
}
}
return 0;
}

HDU5950【矩阵快速幂】的更多相关文章

  1. HDU5950 矩阵快速幂(巧妙的递推)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5950 题意:f[n] = 2*f[n-2] + f[n-1] + n^4 思路:对于递推题而言,如果递 ...

  2. HDU5950 Recursive sequence —— 矩阵快速幂

    题目链接:https://vjudge.net/problem/HDU-5950 Recursive sequence Time Limit: 2000/1000 MS (Java/Others)   ...

  3. HDU5950(矩阵快速幂)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5950 题意:f(n) = f(n-1) + 2*f(n-2) + n^4,f(1) = a , f(2 ...

  4. 【HDU5950】Recursive sequence(矩阵快速幂)

    BUPT2017 wintertraining(15) #6F 题意 \(f(1)=a,f(2)=b,f(i)=2*(f(i-2)+f(i-1)+i^4)\) 给定n,a,b ,\(N,a,b < ...

  5. HDU5950 Recursive sequence (矩阵快速幂加速递推) (2016ACM/ICPC亚洲赛区沈阳站 Problem C)

    题目链接:传送门 题目: Recursive sequence Time Limit: / MS (Java/Others) Memory Limit: / K (Java/Others) Total ...

  6. HDU5950 Recursive sequence 非线性递推式 矩阵快速幂

    题目传送门 题目描述:给出一个数列的第一项和第二项,计算第n项. 递推式是 f(n)=f(n-1)+2*f(n-2)+n^4. 由于n很大,所以肯定是矩阵快速幂的题目,但是矩阵快速幂只能解决线性的问题 ...

  7. RecursiveSequence(HDU-5950)【矩阵快速幂】

    题目链接: 题意:Si=S(i-1)+2*S(i-2)+i^4,求Sn. 思路:想到了矩阵快速幂,实在没想出来怎么构造矩阵.... 首先构造一个向量vec={a,b,16,8,4,2,1}. 在构造求 ...

  8. 一些特殊的矩阵快速幂 hdu5950 hdu3369 hdu 3483

    思想启发来自, 罗博士的根据递推公式构造系数矩阵用于快速幂 对于矩阵乘法和矩阵快速幂就不多重复了,网上很多博客都有讲解.主要来学习一下系数矩阵的构造 一开始,最一般的矩阵快速幂,要斐波那契数列Fn=F ...

  9. hdu3483 A Very Simple Problem 非线性递推方程2 矩阵快速幂

    题目传送门 题目描述:给出n,x,mod.求s[n]. s[n]=s[n-1]+(x^n)*(n^x)%mod; 思路:这道题是hdu5950的进阶版.大家可以看这篇博客hdu5950题解. 由于n很 ...

随机推荐

  1. 图像处理之增强---图像增强算法四种,图示与源码,包括retinex(ssr、msr、msrcr)和一种混合算法

    申明:本文非笔者原创,原文转载自:http://blog.csdn.net/onezeros/article/details/6342661 两组图像:左边较暗,右边较亮 第一行是原图像,他们下面是用 ...

  2. 在html中显示Flash的代码

    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://down ...

  3. 【BZOJ2521】[Shoi2010]最小生成树 最小割

    [BZOJ2521][Shoi2010]最小生成树 Description Secsa最近对最小生成树问题特别感兴趣.他已经知道如果要去求出一个n个点.m条边的无向图的最小生成树有一个Krustal算 ...

  4. live555 RTSP推送到Darwin出现404错误的解决

    我们将Darwin部署到公网,接收live555 RTSP/RTP推送的时候,经常会出现在SETUP步骤Darwin返回404错误,经过查找原因,主要是Darwin对live555推送的sdp信息中的 ...

  5. 用Darwin开发RTSP级联服务器(拉模式转发)(附源码)

    源码下载地址:https://github.com/EasyDarwin orwww.easydarwin.org 在博客 在Darwin进行实时视频转发的两种模式 中,我们描述了流媒体服务器对源端音 ...

  6. DuiLib笔记之自定义标题栏以及响应按钮点击事件

    在博文DuiLib笔记,基于WindowImplBase的基础模板的基础上,修改皮肤文件如下 <?xml version="1.0" encoding="utf-8 ...

  7. CentOS 更换 usr 挂载分区

    由于之前挂载在/usr目录的分区空间过小,无法安装更多需要的软件,现在添加一块硬盘重新挂载在/usr目录,并将之前/usr 目录下的内容(包括权限.连接等)完整拷贝到新磁盘分区的/usr目录. 操作系 ...

  8. js 链接传入中文参数乱码解决

    传入时,可能出现中文的参数用encodeURI进行两次转码,如: lethref="http://www.zzdblog.cn?keyword='+encodeURI(encodeURI(k ...

  9. vsftp登录时间太长的解决办法

    与ssh一样,vsftp的配置文件默认开启了DNS反向解析,这可能会造成用户在登陆到FTP服务器的时候奇慢无比,只要在配置文件中禁用DNS反向解析即可解决文件. 编辑/etc/vsftpd/vsftp ...

  10. 动态区间第K大

    整体二分. 主要需要注意的一点是,对于每个删除操作,若删除操作被算入贡献,则最开始的插入操作也一定会被算入,所以不必担心删除删错. #include<cstdio> #include< ...