hdu 6395 (整除分塊 矩陣快速冪)

2021-10-02 22:12:00 字數 2405 閱讀 2496

該題的表示式是

[ fn

fn−1

1]=[

3dc[

pn]1

0000

1]∗[

fn−1

fn−2

1]

\left[ \begin f_n \\ f_ \\ 1\\ \end \right]=\left[ \begin3 d & c & [\frac] \\ 1 & 0 & 0\\ 0 & 0 & 1 \end \right]*\left[ \begin f_ \\ f_\\ 1\\ \end \right]

⎣⎡​fn​

fn−1

​1​⎦

⎤​=⎣

⎡​3d

10​c

00​[

np​]

01​⎦

⎤​∗⎣

⎡​fn

−1​f

n−2​

1​⎦⎤

​建議先看**,再看我其他瞎bb的。

**是參考htx學長?的,**風格值得點讚 。

1.注意矩陣乘法不可以用交換律,因此左乘和右乘不一樣。

2.精度問題要注意,可以用加 (ll)的方式轉換。

舉p=21,n=13為例子:

l=3,得到這個值k=21/3=7

問有多少個矩陣會相同都取k=7,那麼也就是p被分成7份,每份最少是l個,最多是p/7=3個。

即 [l,p/3]=[3,3]之間的矩陣是相同的,即都是[dc

7100

001]

\left[ \begind & c & 7 \\1 & 0 & 0\\0 & 0 & 1 \\\end \right]

⎣⎡​d10

​c00

​701

​⎦⎤​

l=4,得到這個值k=21/4=5

也就是p被分成5份,每份的個數最少是l=4個,最多是p/5=4,

即i=[l,p/5]=[4,4]之間的矩陣是相同的,都是[dc

5100

001]

\left[ \begind & c & 5 \\1 & 0 & 0\\0 & 0 & 1 \\\end \right]

⎣⎡​d10

​c00

​501

​⎦⎤​

l=5,得到這個值k=21/5=4

也就是p被分成4份,每份的個數最少是l=5個,最多是p/4=5,

即i=[l,p/4]=[5,5]之間的矩陣是相同的,都是[dc

4100

001]

\left[ \begind & c & 4 \\1 & 0 & 0\\0 & 0 & 1 \\\end \right]

⎣⎡​d10

​c00

​401

​⎦⎤​

l=6,得到這個值k=21/6=3

也就是p被分成3份,每份的個數最少是l=6個,最多是p/3=7,

即i=[l,p/3]=[6,7]之間的矩陣是相同的,都是[dc

3100

001]

\left[ \begind & c & 3 \\1 & 0 & 0\\0 & 0 & 1 \\\end \right]

⎣⎡​d10

​c00

​301

​⎦⎤​

l=8,得到這個值k=21/8=2

也就是p被分成2份,每份的個數最少是l=8個,最多是p/2=10,

即i=[l,p/2]=[8,10]之間的矩陣是相同的,都是[dc

2100

001]

\left[ \begind & c & 2 \\1 & 0 & 0\\0 & 0 & 1 \\\end \right]

⎣⎡​d10

​c00

​201

​⎦⎤​

l=11,得到這個值k=21/11=1

也就是p被分成1份,每份的個數最少是l=11個,最多是p/1=21,

又因為n=13故[l,p/1]=[11,13]之間的矩陣是相同的,都是[dc

1100

001]

\left[ \begind & c & 1 \\1 & 0 & 0\\0 & 0 & 1 \\\end \right]

⎣⎡​d10

​c00

​101

​⎦⎤​

#includeusing namespace std;

const int mod=1e9+7;

typedef long long ll;

struct mat

int* operator(int x)

mat operator *(mat bb)

return dst;

}int a,b,c,d,p,n;

int solve()

return 0;

}

hdu6395 分塊矩陣快速冪

題目大意 f 1 a,f 2 b,f i c f i 2 d f i 1 p i 向下取整 給定a b c d p n 求f n 構造矩陣a 矩陣b 矩陣c f n 2 f n 1 1 0 c 0 f n 1 f n 1 0 0 0 1 d 0 0 0 0 0 0 0 0 p i 1 0 0 0 那...

HDU 6395 區間矩陣快速冪

hdu 6395 傳送門 題目裡有公式顯示不了,直接傳送門 公式 f1 a f2 b fn fn 2 c fn 1 d p n 其中 a b c d p n 均為不定值,p n 為計算機整數除法,即向下取整 很明顯的是 前 2 項 c 前 1 項 d,所以矩陣很好構造 mat d 1 c 0所以 f...

hdu 6395 Sequence 分塊矩陣快速冪

容易知道 p i i 3.n 在某一區間內是相同的,記錄前乙個區間的fn 1,fn 2,對本區間進行矩陣快速冪,確定本區間的界限可以用一句話 即 j p i 0?n min n,p p i 並不需要二分 ac include include include include include inclu...