当前位置: 首页 > news >正文

东莞网站网络推广网站怎么做图片动态图

东莞网站网络推广,网站怎么做图片动态图,网站开发配置状态统计,营销公司网站模板下载上一次我们了解了矩阵的运算和如何使用矩阵解决斐波那契数列&#xff0c;这一次我们多看看例题&#xff0c;了解什么情况下用矩阵比较合适。 先看例题 1.洛谷P1939 【模板】矩阵加速&#xff08;数列&#xff09; 模板题应该很简单。 补&#xff1a;1<n<10^9 10^9肯定…

上一次我们了解了矩阵的运算和如何使用矩阵解决斐波那契数列,这一次我们多看看例题,了解什么情况下用矩阵比较合适。

先看例题

1.洛谷P1939 【模板】矩阵加速(数列)

模板题应该很简单。

补:1<n<=10^9

10^9肯定超了,所以可以用矩阵做

我们可以观察到,每一项(x>3)都是由两个量组成,于是创建矩阵:

A=[a_{n-1},a_{n-3}]

同时:B=A\times base=[a_{n},?]

那么因为如果要再让A\times base\times base=[a_{n+1},??],A*base 之后还是应该是前一个为一项,后一项为它的两项前。所以?处应为a_{n-2}。??处应为什么自己想想,发在评论区里吧。

但是,a_{n-2}在A中并没有出现,这样我们就不可以用A*base表示B了,因为矩阵的乘法中,必须要上一个矩阵中有的元素,才能进入下一个矩阵中。

无论怎样,a_{n-2}都无法表示为n\times a_{n-1}+m\times a_{n-2}的形式,所以B不可以由A构成。

那这个时候就可以用一个巧妙的方法:我们在A和B中都增加a_{n-2}这一项,这样就会变成

[a_{n-1},a_{n-2},a_{n-3}]\times base=[a_{n},a_{n-1},a_{n-2}]

a_{n}可以表示为a_{n-1}+a_{n-3},这样就可以满足每一个条件都可以了。

那么我们利用矩阵乘法,在纸上演算七七四十八个小时,就可以得出,

base=\begin{bmatrix} 1,1,0\\ 0,0,1\\ 1,0,0\\ \end{bmatrix}

那么用和斐波那契数列一样的做法,快速幂即可

#include<bits/stdc++.h>
using namespace std;
#define mod 1000000007
struct Matrix{int n,m;long long a[100][100];Matrix(){memset(a,0,sizeof(a));}Matrix(int _n,int _m){n=_n;m=_m;memset(a,0,sizeof(a));}
};
Matrix ans(1,3);
Matrix base(3,3);
void init(){ans.a[0][0]=1;ans.a[0][1]=1;ans.a[0][2]=1;base.a[0][0]=1;base.a[0][1]=1;base.a[0][2]=0;base.a[1][0]=0;base.a[1][1]=0;base.a[1][2]=1;base.a[2][0]=1;base.a[2][1]=0;base.a[2][2]=0;
}
Matrix mul(Matrix a,Matrix b){Matrix res(a.n,b.m);for(int i=0;i<a.n;i++){for(int j=0;j<b.m;j++){for(int k=0;k<a.m;k++){res.a[i][j]+=a.a[i][k]*b.a[k][j]%mod;}res.a[i][j]%=mod;}}return res;
}
Matrix bpow(Matrix a,long long n){Matrix res(a.n,a.n);for(int i=0;i<a.n;i++)res.a[i][i]=1;while(n!=0){if(n&1){res=mul(res,a);}a=mul(a,a);n>>=1;}return res;
}
long long F(long long n){base=bpow(base,n-3);/*for(int i=0;i<3;i++){for(int j=0;j<3;j++){cout<<base.a[i][j];}cout<<endl;}*/ans=mul(ans,base);return ans.a[0][0]%mod;
}
int main(){long long t;cin>>t;while(t--){long long n;cin>>n;if(n<=3){cout<<1<<endl;continue;}init();cout<<F(n)<<endl;}return 0;
}

2.洛谷P1349 广义斐波那契数列

其实很简单,就是把斐波那契数列的模板套一下

先写一半

http://www.sczhlp.com/news/51662/

相关文章:

  • 哪个网站可以用来做读书笔记微信微网站开发策划
  • 鞍山网站建设找金航百度学术官网
  • 郑州那家做网站便宜厦门易尔通做网站怎么样
  • asp.net开发的网站音乐网站开发案例
  • wordpress 网站logo闻喜网站建设
  • 网站策划与维护电信服务器
  • 国税网站模板仿照一个国外的网站要多少钱
  • 做简历网站 知乎设计一个企业网站大概多少钱
  • icp ip 网站备案阿里云t5做网站
  • 西安建设企业网站网站服务器搭建的步骤
  • 网站推广有哪些常用的方法网络公司网站设计维护合同
  • 深圳网站建设索q.479185700视频拍摄软件
  • 任务一 分析电子商务网站栏目结构赤水市白房建设局网站
  • 港海(天津)建设股份有限公司网站网站新备案不能访问
  • 什么免费推广网站好豆瓣 wordpress 插件
  • 算命网站搭建十四五专业建设规划
  • 佛山知名网站建设公司余姚企业网站建设
  • 网站开发背景策划书wordpress调用文章第一张图片
  • 论文个人网站建设保定模板建站定制网站
  • 外贸行业网站建设公司排名wordpress产品模块
  • 那些网站专门做游戏辅助的怎么建设自己的购物网站
  • 网站背景修改四川网站建设公司 会员登录
  • 网站备案系统源码南通专业制作网站
  • 个人网站建设安全做网站游戏都需要什么
  • 萍乡做网站试描述一下网站建设的基本流程图
  • 旅游景区网站建设规划方案网页设计师用什么软件
  • 自己做的网站访问不了做网站的主流技术
  • SSE(Server-Sent Events)圣经: 底层原理 + 应用开发 + 技术对比 (图解+秒懂+史上最全)
  • 微信微网站统计下载建程网
  • 温州网站推广优化校园官方网站建设的书籍