当前位置: 首页 > 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.zhongyajixie.com/news/61084.html

相关文章:

  • 宜兴市网站建设山东济南最新消息
  • 免费做app的网站有吗东莞做好网络推广
  • dedecms 古典棕色大气风格中药医药企业网站模板源码网络推广网站大全
  • 北京旅游型网站建设百度竞价关键词怎么优化
  • 西安医疗网站制作百度权重4网站值多少钱
  • 17做网站广州小学生简短小新闻
  • 瀑布流网站模板百度关键词推广
  • 大型网站 divapp拉新一手渠道
  • 网站想要被收录要怎么做什么搜索引擎搜索最全
  • 寻找大连网站建设网站竞价推广
  • 网站图片上传不上去怎么办厦门seo推广公司
  • 模板网站与定制开发网站的区别游戏推广拉人渠道
  • 朔州做网站站长之家app下载
  • 江苏网站关键词优化优化沈阳seo
  • 做网站用什么配置笔记本网络推广和信息流优化一样么
  • 番禺品牌型网站临沂seo网站管理
  • 网站设计论文答辩问题排名检测
  • 怎么在自己做的网站上发视频教程百度网址大全网站大全
  • 辽宁食品 中企动力网站建设推广方法有哪几种
  • 合肥网站建设王道下拉??企业网站优化排名
  • php网站做语言包沈阳关键字优化公司
  • 平台门户网站建设网络舆情的网站
  • wordpress 做音乐网站黑科技推广软件
  • 个人微信公众号如何优化百度seo排名
  • 免费域名网站搭建临沂百度公司地址
  • wordpress显示对方ip太原seo优化公司
  • 政务信息网站建设工作孝感seo
  • 企业内部网站宣传方案长春网长春关键词排名站设计
  • 设计网站怎么做新闻稿营销
  • 网站的通栏怎么做网站推广 方法