主要还是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;
}

最新文章

  1. 分享本年度最佳的15个 Photoshop 实例教程
  2. ASP.NET中使用DropDownList实现无刷新二级联动详细过程
  3. Linux下crontab命令的用法
  4. springMVC controller间跳转、重定向、传参
  5. Logback日志配置的简单使用
  6. 【Spring源码分析】AOP源码解析(上篇)
  7. [LeetCode] Candy Crush 糖果消消乐
  8. leetcode — longest-consecutive-sequence
  9. Python:re中的group方法简介
  10. 数据库管理 trove openstack
  11. C#学习-类的成员
  12. salesforce lightning零基础学习(七) 列表展示数据时两种自定义编辑页面
  13. javascript高级部分
  14. 如何使用网格搜索来优化深度学习模型中的超参数(Keras)
  15. kolla-ansible部署多节点OpenStack-Pike
  16. NIO,OIO,AIO区别
  17. [Windows Azure] Getting Started with Windows Azure SQL Data Sync
  18. CentOS7.4 + Ambari 2.6.1.5 + HDP 2.6.4.0 安装部署
  19. 七、springboot整合Spring-data-jpa
  20. Oracle密码中含有特殊字符时exp,imp的使用

热门文章

  1. sap保存时小写字母自己主动转大写字母的解决方法
  2. cpio
  3. MQ发送的消息都到了死信队列中了
  4. myeclipse10.0如何集成Git
  5. WIN7系统设置wifi
  6. linux 启动引导器 grub,单用户模式:
  7. lAMP下新建维护站点全过程
  8. jquery特效(5)—轮播图③(鼠标悬浮停止轮播)
  9. ReentrantReadWriteLock读写锁实现分析
  10. android中requestFocus