矩陣快速冪在常係數線性遞推關係中的應用
先引入一下,知乎上有一個問題 關於斐波拉契數列的一個低階問題 。題主詢問了關於求解斐波拉契數列第n項對10007取模的結果。而這個n,可以達到
解法已經在排名第一的回答中給出了,主要思路就是快速冪和矩陣乘法的結合律,亦即矩陣快速冪。具體方法這裡也就不再給出。但可以依託此思想,拓展出在
另外要說明的一點是,這種方法僅適用於常係數線性遞推關係,即遞推關係
中,
這裡我們先考慮遞推關係為齊次遞推關係的情況,即忽略常數項b(令
中,如果令
其中, A矩陣為:
可以看出,
先引入一下,知乎上有一個問題 關於斐波拉契數列的一個低階問題 。題主詢問了關於求解斐波拉契數列第n項對10007取模的結果。而這個n,可以達到106甚至109 。
解法已經在排名第一的回答中給出了,主要思路就是快速冪和矩陣乘法的結合律,亦即矩陣快速冪。具體方法
最近兩場比賽,都涉及到此類問題!以前沒注意過這種問題,都在狀態轉移方程推出後,止步於n太大!事後總結,線性遞推可以用矩陣來表示,進而快速冪解決n太大的問題!
題意:n×m矩陣填黑白兩色, mat cpp matrix 有一個 rac 分析 eof rhs oid 題意:求$ [(\sqrt{2}+\sqrt{3})^{2n}] mod 1024 $
分析: 把指數的2帶入 原式等於 $ [(5+2\sqrt{6})^n] $
有一個重要的結論是n次運算後其結
一、開頭
( WC2019 神犇協會) undefeatedKO : NOI2017 的題大家都 AK 了嗎? All : AK 了! ION :我們穿越到 2019 年的 WC 怎麼樣? olis :好啊!聽說一個弱雞 xyz32768 要來 WC ,我們一到就把他 D 一遍,這樣他
(一)Fibonacci數列 f[n]=f[n-1]+f[n-2] , f[1]=f[2]=1 的第n項的快速求法(不考慮高精度). 已知 f[0] = 0 , f[1] = f[2] = 1 , f[3] = 2 , f[4] = 3 , f[5] = 5 ……. f[n]=f[n-1]
題目大意
有一個1001×n1001×n的的網格,每個格子有qq的概率是安全的,1−q1−q的概率是危險的。
定義一個矩形是合法的當且僅當:
這個矩形中每個格子都是安全的
必須緊貼網格的下邊界
問你最大的合法子矩形大小
題目大意
一行有n個球,現在將這些球分成k 組,每組可以有一個球或相鄰兩個球。一個球只能在至多一個組中(可以不在任何組中)。求對於1≤k≤m的所有k分別有多少種分組方法。
答案對998244353取模。
n≤109,m<219
題解
常係數齊次線性遞推式
fk=∑i=1naifk−ifk=∑i=1naifk−i
形如上式的dpdp轉移式(ff表示dpdp狀態,aa表示轉移係數)即為常係數齊次線性遞推式。對於這樣的dpdp式,給定f1,2,..,k,a1,2,...,kf1,2,..,k, sca 組合數 矩陣 spl blank mage acm 組合 str 題目鏈接
題意 : 有種不同的字符,每種字符有無限個,要求用這k種字符構造兩個長度為n的字符串a和b,使得a串和b串的最長公共部分長度恰為m,問方案數
分析 :
直覺是DP
不過當時看到 n 很
斐波那契數列 f(0)=0; f(1)=1; f(n)=f(n-1)+f(n-2),n>1
從上面這個方程中我們可以看到很明顯的遞推關係,當n>1的時候很明顯發現會有一個關係式,但是實際上我們在做運算的時候,如果一步一步的按照遞推式計算,將會消耗大量的時間(最短 scan ems while href sca class stdin tdi %d HDU 2604 Queuing (遞推+矩陣快速冪)
這位作者講的不錯,可以看看他的
#include <cstdio>
#include <iostream 其中 sin 一位 strong DC net name 思路 eof 題目鏈接:
https://vjudge.net/problem/HDU-2604
題目大意:
n個人排隊,f表示女,m表示男,包含子串‘fmf’和‘fff’的序列為O隊列,否則為E隊列,有多少個序列為 esp over () n-1 告訴 matrix \n nbsp 答案 大致題意:讓你用1*2規格的地毯去鋪4*n規格的地面,告訴你n,問有多少種不同的方案使得地面恰好被鋪滿且地毯不重疊。答案對1000000007取模
遞推得f(n)=f(n-1)+5*f(n-2)+ scan efi stdio.h opened ans hide 最終 spl pen 題意:個n個方塊塗色, 只能塗紅黃藍綠四種顏色,求最終紅色和綠色都為偶數的方案數。
該題我們可以想到一個遞推式 。 設a[i]表示到第i個方塊為止紅綠是偶數的方案數, b[i]為紅綠
題目連結
Queuing Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(
Address
洛谷P3824 BZOJ4944 UOJ#316 LOJ#2304
Solution…
一、差分 容斥
要限制最大值恰好為一個定值往往是不好做的。 所以考慮容 (cha) 斥 (fen) ,把詢問
題目連結:https://cn.vjudge.net/contest/261339#problem/B
AC1:ans= x(n)+y(n)*sqrt(6),所以,ans=x(n)+y(n)*sqrt(6)+(x(n)-y(n)*sqrt(6))-(x(n)-y(n)*sqrt(6))=2* 題目連結:http://acm.hdu.edu.cn/showproblem.php?pid=5950
Farmer John likes to play mathematics games with his N cows. Recently, they are attracted by recursive 題目連結:傳送門
題目大意:
求斐波那契數列第n項F(n)。
(F(0) = 0, F(1) = 1, 0 ≤ n ≤ 109)
思路:
用矩陣乘法加速遞推。
演算法競賽進階指南的模板:
#include <iostream>
#include &l 相關推薦
矩陣快速冪在常係數線性遞推關係中的應用
矩陣快速冪處理一類線性遞推組問題
HDU - 2256 矩陣快速冪 帶根號的遞推
[學習筆記]多項式的整除、取模、多點求值和插值及常係數線性遞推
常係數線性遞推(Fibonacci數列)
【BZOJ4944】【NOI2017】泳池 概率DP 常係數線性遞推 特徵多項式 多項式取模
【XSY2730】Ball 多項式exp 多項式ln 多項式開根 常係數線性遞推 DP
常係數齊次線性遞推優化矩陣快速冪-bzoj4161-4944
HDU 5863 cjj's string game ( 16年多校10 G 題、矩陣快速冪優化線性遞推DP )
矩陣運算快速冪來快速計算線性遞推式
hdu 2604 遞推 矩陣快速冪
hdu-2604 Queuing---遞推+矩陣快速冪
HDU6185 Covering (遞推+矩陣快速冪)
POJ 3734 Blocks(矩陣快速冪+矩陣遞推式)
【HDU2604】Queuing(矩陣快速冪+遞推)
[BZOJ4944/UOJ#316][NOI2017]泳池(概率DP+常係數齊次線性遞推)
矩陣快速冪(共軛函式兩種遞推式)
HDU 5950 - Recursive sequence - [矩陣快速冪加速遞推][2016ACM/ICPC亞洲區瀋陽站 Problem C]
POJ3070 Fibonacci(矩陣快速冪加速遞推)【模板題】