这道题的难点就是构造出这个矩阵

 假如是这样的一个式子 F[n]=F[n-2]*2+F[n-1],那就很简单

 但是,多了个i^4,这就很难办了。

 所以,我们要着重处理的就是这一部分

 那么 (n+1)^4 = n^4 + 4n^3 + 6n^2 + 4n + 1

             ans.a[][]=bb%mod;///f(i-1)
ans.a[][]=aa%mod;
ans.a[][]=;
ans.a[][]=;
ans.a[][]=;
ans.a[][]=;
ans.a[][]=;

假如目前我们处理的基础矩阵为这个样子。

那么我们就需要以下这样一个与他相乘的矩阵

1 2 1 0 0 0 0      f(2)

1 0 0 0 0 0 0   f(1)

0 0 1 4 6 4 1      81

0 0 0 1 3 3 1      27

0 0 0 0 1 2 1   9

0 0 0 0 0 1 1      3

0 0 0 0 0 0 1      1

代码如下:

 #include<cstdio>
#include<algorithm>
#include<math.h>
#include<string.h>
using namespace std;
typedef long long ll;
const ll mod=;
struct node
{
ll a[][];
}ans,A,B;
node mat(node x,node y)
{
node c;
for(int i=;i<=;i++)
for(int j=;j<=;j++)
c.a[i][j]=;
for(int i=;i<=;i++)
for(int j=;j<=;j++)
for(int k=;k<=;k++)
c.a[i][j]=(c.a[i][j]+x.a[i][k]*y.a[k][j]%mod)%mod;
return c;
}
void init()
{
A.a[][]=,A.a[][]=,A.a[][]=,A.a[][]=,A.a[][]=,A.a[][]=,A.a[][]=;
A.a[][]=;A.a[][]=,A.a[][]=,A.a[][]=,A.a[][]=,A.a[][]=,A.a[][]=;
A.a[][]=,A.a[][]=;A.a[][]=;A.a[][]=;A.a[][]=;A.a[][]=;A.a[][]=;
A.a[][]=,A.a[][]=,A.a[][]=,A.a[][]=;A.a[][]=;A.a[][]=;A.a[][]=;
A.a[][]=,A.a[][]=,A.a[][]=,A.a[][]=,A.a[][]=,A.a[][]=;A.a[][]=;
A.a[][]=,A.a[][]=,A.a[][]=,A.a[][]=,A.a[][]=,A.a[][]=;A.a[][]=;
A.a[][]=,A.a[][]=,A.a[][]=,A.a[][]=,A.a[][]=,A.a[][]=;A.a[][]=;
}
void quick_mod(ll n)
{
memset(ans.a,,sizeof(ans.a));
for(int i=;i<=;i++)
for(int j=;j<=;j++)
if(i==j) B.a[i][j]=;
else B.a[i][j]=;
init();
while(n){
if(n&) B=mat(B,A);
A=mat(A,A);
n>>=;
}
}
int main()
{
int T;
scanf("%d",&T);
while(T--){
ll n,aa,bb;
scanf("%lld%lld%lld",&n,&aa,&bb);
if(n==) printf("%lld\n",aa);
else if(n==) printf("%lld\n",bb);
else{
quick_mod(n-);
ans.a[][]=bb%mod;///f(i-1)
ans.a[][]=aa%mod;
ans.a[][]=;
ans.a[][]=;
ans.a[][]=;
ans.a[][]=;
ans.a[][]=;
ans=mat(B,ans);
printf("%lld\n",ans.a[][]);
}
}
return ;
}

最新文章

  1. FilenameFilter过滤文件名
  2. java树形目录展示
  3. MipMap与三线性过滤
  4. Programming Assignment 4: 8 Puzzle
  5. web优化规范
  6. asp.net 客户端上传文件全路径获取方法
  7. Linux下GPIO驱动(一) ----一个简单的LED驱动
  8. Solr集群的搭建以及使用(内涵zookeeper集群的搭建指南)
  9. va_list/va_start/va_arg/va_end深入分析
  10. 修改sqlserver2008中表的schema
  11. c#生成动态库并加载
  12. SpringBoot实战 之 接口日志篇
  13. Spring的事务 之 9.4 声明式事务 ——跟我学spring3
  14. vue2.0 实现全选和全不选
  15. C# 设置Excel条件格式(二)
  16. WebService实例-CRM系统提供WebService实现用户注册功能
  17. 【BZOJ1419】Red is good 期望DP
  18. 怎样解决IIS6.0上传文件限制的问题?
  19. The superclass &quot;javax.servlet.http.HttpServlet&quot; was not found
  20. PoPo数据可视化周刊第4期

热门文章

  1. map/reduce+lambda让程序简单化
  2. 使用mininet创建网络拓扑,使ryu、ovs、主机连接
  3. 51Nod 1284 2 3 5 7的倍数 (容斥定理)
  4. C语言 三目运算
  5. 最新NetSarang Xmanager安装激活-XShell、XFtp
  6. AI机器人最高等级
  7. 假期学习【二】配置Scala环境(Ubuntu)以及配套Scala编程实验
  8. 推荐7个GitHub项目
  9. 2.Ubuntu安装 Docker
  10. [CF1304F] Animal Observation - dp,单调队列