日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

E. Product Oriented Recurrence(四个矩阵快速幂)

發(fā)布時(shí)間:2023/12/20 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 E. Product Oriented Recurrence(四个矩阵快速幂) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
E. Product Oriented Recurrence time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output

Let fx=c2x?6?fx?1?fx?2?fx?3

You have given integers nn , f1f1 , f2f2 , f3f3 , and cc . Find fnmod(109+7)fnmod(109+7) .

Input

The only line contains five integers nn , f1f1 , f2f2 , f3f3 , and cc (4n10184≤n≤1018 , 1f11≤f1 , f2f2 , f3f3 , c109c≤109 ).

Output

Print fnmod(109+7)fnmod(109+7) .

Examples Input Copy 5 1 2 5 3 Output Copy 72900 Input Copy 17 97 41 37 11 Output Copy 317451037 Note

In the first example, f4=90f4=90 , f5=72900f5=72900 .

In the second example, f172.28×1029587f17≈2.28×1029587 .









?

矩陣快速冪使用來加速加法的運(yùn)算

而這個(gè)題目給的是乘法

所以要看看式子可不可與搞加法的樣子

答案可以寫成

ans = ?c的冪 * f1的冪 * f2的冪 * f3的冪

現(xiàn)在要全球的就是四個(gè)數(shù)的指數(shù)

顯然是構(gòu)造矩陣然后快速冪遞推吧,然后就1e9+7是個(gè)質(zhì)數(shù)

因此所有的指數(shù)都可以mod phi(1e9+7)






?

1 #include"bits/stdc++.h" 2 using namespace std; 3 #define int long long 4 const int N = 5; 5 const int mod = 1e9+7; 6 struct Mat 7 { 8 int a[6][6]; 9 Mat (){memset(a,0,sizeof a);} 10 11 }; 12 13 inline Mat mul(Mat a,Mat b,int mod ) 14 { 15 Mat c; 16 for(int i=1;i<=N;i++) 17 { 18 for(int j=1;j<=N;j++) 19 { 20 for(int k=1;k<=N;k++) 21 { 22 c.a[i][j] +=a. a[i][k]*b.a[k][j]; 23 c.a[i][j] %= mod; 24 } 25 26 27 } 28 }return c; 29 } 30 inline int ksm(int a,int b,int p) 31 { 32 int ans = 1; a%=p; 33 for(;b;b>>=1,a*=a,a%=p)if(b&1)ans*=a,ans%=p; 34 return ans; 35 } 36 int n,f1,f2,f3,c; 37 38 signed main() 39 { 40 Mat base; 41 base.a[1][1]=0; 42 base.a[1][2]=0; 43 base.a[1][3]=0; 44 base.a[1][4]=1; 45 base.a[1][5]=4; 46 47 Mat t; 48 t.a[1][1]=1; t.a[1][2]=1; 49 t.a[2][1]=t.a[2][3]=1; 50 t.a[3][1]=1; 51 t.a[4][1]=-6; t.a[4][4]=t.a[4][5]=1; 52 t.a[5][1]=2,t.a[5][5]=1; 53 54 cin>>n; n-=3; 55 cin>>f1>>f2>>f3>>c; 56 Mat ans; 57 for(int i=1;i<=5;i++)ans.a[i][i]=1; 58 int b=n; 59 60 b=n; 61 for(;b;b>>=1,t=mul(t,t,1e9+6))if(b&1)ans=mul(ans,t,1e9+6); 62 base=mul(base,ans,1e9+6); 63 //cout<<base.a[1][1]; 64 int Ans = ksm(c,base.a[1][1],mod); 65 // cout<<Ans<<endl; 66 memset(t.a,0,sizeof t.a); 67 memset(base.a,0,sizeof base.a); 68 memset(ans.a,0,sizeof ans.a); 69 70 // f1 71 for(int i=1;i<=5;i++)ans.a[i][i]=1; 72 base.a[1][1]=0; 73 base.a[1][2]=0; 74 base.a[1][3]=1; 75 t.a[1][1]=1; t.a[1][2]=1; 76 t.a[2][1]=t.a[2][3]=1; 77 t.a[3][1]=1; 78 b=n; 79 for(;b;b>>=1,t=mul(t,t,1e9+6))if(b&1)ans=mul(ans,t,1e9+6); 80 base=mul(base,ans,1e9+6); 81 Ans *= ksm(f1,base.a[1][1],mod); Ans %= mod; 82 // cout<<base.a[1][1]<<endl; 83 memset(t.a,0,sizeof t.a); 84 memset(base.a,0,sizeof base.a); 85 memset(ans.a,0,sizeof ans.a); 86 87 88 //f2 89 for(int i=1;i<=5;i++)ans.a[i][i]=1; 90 base.a[1][1]=0; 91 base.a[1][2]=1; 92 base.a[1][3]=0; 93 t.a[1][1]=1; t.a[1][2]=1; 94 t.a[2][1]=t.a[2][3]=1; 95 t.a[3][1]=1; 96 b=n; 97 for(;b;b>>=1,t=mul(t,t,1e9+6))if(b&1)ans=mul(ans,t,1e9+6); 98 base=mul(base,ans,1e9+6); 99 Ans *= ksm(f2,base.a[1][1],mod); Ans %= mod; 100 // cout<<base.a[1][1]<<endl; 101 102 memset(t.a,0,sizeof t.a); 103 memset(base.a,0,sizeof base.a); 104 memset(ans.a,0,sizeof ans.a); 105 106 // f3 107 108 for(int i=1;i<=5;i++)ans.a[i][i]=1; 109 base.a[1][1]=1; 110 base.a[1][2]=0; 111 base.a[1][3]=0; 112 t.a[1][1]=1; t.a[1][2]=1; 113 t.a[2][1]=t.a[2][3]=1; 114 t.a[3][1]=1; 115 b=n; 116 for(;b;b>>=1,t=mul(t,t,1e9+6))if(b&1)ans=mul(ans,t,1e9+6); 117 base=mul(base,ans,1e9+6); 118 Ans *= ksm(f3,base.a[1][1],mod); Ans %= mod; 119 // cout<<base.a[1][1]<<endl; 120 121 122 cout<<Ans; 123 124 125 126 127 128 129 130 131 132 }

?

?

?

?

?

?

?

?

?

?

?

?

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/zhangbuang/p/11038477.html

總結(jié)

以上是生活随笔為你收集整理的E. Product Oriented Recurrence(四个矩阵快速幂)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美精品免费一区二区 | 福利一区在线观看 | 免费播放毛片精品视频 | 中文字幕在线观看免费 | 亚洲五码在线 | 亚洲二区精品 | 九九天堂 | 欧美永久视频 | 中文字幕一区二区视频 | 精品一区二区av | 精品人妻人人做人人爽夜夜爽 | 日本少妇一区二区三区 | 日韩成人一区二区三区 | 免费观看h片| 国产性生活一级片 | 亚洲国产黄色 | 日韩av导航| 爱情岛亚洲首页论坛小巨 | 欧美三级a | www.精品 | 国产91丝袜 | 久久久久亚洲AV成人无在 | 久久精品这里只有精品 | 亚洲综合一区二区 | 制中文字幕音影 | 日一日射一射 | 欧美成人69 | 精品无码免费视频 | 国产制服丝袜 | 国产在线观看免费高清 | 亚洲中文字幕97久久精品少妇 | 三级国产在线观看 | 欧美激情在线观看视频 | 在线观看免费成人 | 午夜精品视频在线观看 | 三上悠亚久久精品 | 日韩精品自拍 | 免费成人在线网站 | 免费无码国产精品 | 尤物视频免费在线观看 | www.欧美国产 | 看av网址 | 久久久久久久av | 激情另类小说 | 污网站免费在线观看 | 超碰免费看| 国产aⅴ爽av久久久久成人 | 天天躁日日躁aaaa视频 | 国产精品大屁股白浆一区 | 日韩精品乱码久久久久久 | 国产偷人爽久久久久久老妇app | 黄一区二区三区 | 色综合色婷婷 | 蜜乳av一区二区三区 | 国产免费av观看 | 五月婷婷一区二区 | www.com日本 | 国产女女 | 18成人在线观看 | 亚洲天堂网一区二区 | 亚洲特黄特色 | 国产女主播一区 | 777理伦三级做爰 | 精彩视频一区二区三区 | 激情六月丁香 | 中文字幕精品视频 | xxxxxx欧美| 国产黄色片在线 | 日韩在线三级 | 国产男女无套免费网站 | www.天天操.com| 91视频青青草 | 96精品国产 | 日韩久久一区二区三区 | 国产在线精品成人欧美 | 日韩免费看 | 毛片随便看 | 99国产精品久久久久久久 | 国产高清无密码一区二区三区 | 一区二区三区在线播放 | 欧美成人精品欧美一级 | 欧美一区二区三区电影 | 久久乐视频 | 神马午夜激情 | 人人看超碰 | 麻豆tv在线观看 | 男女福利视频 | 97免费观看视频 | 欧美日韩精品区 | 国产精品综合在线 | 琪琪射 | 免费av手机在线观看 | 国模少妇一区二区 | www色网站| 99视频免费看 | 中文字幕乱码在线观看 | 国产免费无码一区二区 | 欧美精品久久久久久 | 日韩视频在线免费观看 |