WOJ 654 遞推 矩陣快速冪

2021-07-30 18:31:17 字數 2223 閱讀 8986

654. a ****** math problem

time limit: 1000 ms / mem. limit: 524288 kib / io:stdio

given a number nn

n, you should calculate 123456…11121314…n123456\ldots 11121314\ldots n12

3456

…111

2131

4…n module 11

a single line with an integer nn

n (0

010​1

8​​)

output one integer, 123456…11121314…n123456\ldots 11121314\ldots n12

3456

…111

2131

4…n module 11

1
1
20
5
21
4
1≡1(mod11)1 \equiv 1 (\mod 11)1≡

1(mod11)

1234567891011121314151617181920≡5(mod11)1234567891011121314151617181920 \equiv 5 (\mod 11)12

3456

7891

0111

2131

4151

6171

8192

0≡5(

mod11)

123456789101112131415161718192021≡4(mod11)123456789101112131415161718192021 \equiv 4 (\mod 11)12

3456

7891

0111

2131

4151

6171

8192

021≡

4(mod11)

.第六屆華中區程式設計邀請賽暨武漢大學第十五屆校賽

題目,很容易理解,輸入乙個n,把從1開始到n的所有數字連成乙個數字,然後問這個數字模11的結果是什麼。

首先,顯然會想到n的結果就是n-1的結果乘上n的位數加上n再模11。o(n)的演算法,但是仍然會超時。於是我就開始了漫長的找規律之旅,然後發現這是個無底洞……自己手殘經常敲錯東西,然後有時又忘了改一些東西。然後中午沒有吃東西,腦子一片混亂,總之耗了乙個多小時還沒有弄出來。不,是wa了兩次,然後放棄了。

現在想來,把我的思想總結一下就是f(n)=(f(n-1)*10^p+n)%11。其中p表示n的位數。我想,如果我把這個式子寫出來或許我就可以想到矩陣快速冪了,然而……那麼我們就來說說矩陣對遞推的式的優化吧。對於任何線性的遞推,我們都可以把遞推關係寫在矩陣裡面,即可以把通項公式寫成an=a0*matrix^n,這樣子的話,我們就可以利用矩陣乘法優化這個遞推的過程。

這題的話由於p的不同,所以我們要分成18個矩陣並分成一段一段地區求。構造方式的話設遞推矩陣為x,x=},然後的話首項是an=},這樣子剛好就可以完成遞推,不信自己去試一試。關於構造這個矩陣,我記得我高中高oi的時候好像讀過一篇文章專門講如果構造遞推矩陣,然而現在不記得了……下次找到了再講吧。

還有,值得注意到是,對於求位數p,本想裝個b用log換底直接求位數,但是由於一些精度問題老師錯……最後還是妥協了……**如下:

#include#include#include#include#include#include#include#define ull unsigned long long

#define mod 11

#define n 4

using namespace std;

struct matrix

x,s,basic;

ull n,y;

matrix matmulti(matrix x,matrix y)

matrix ans=x;

y>>=1;

while (y!=0)

return ans;

}int main()

ull i=10,j;

for(i=10,j=1;j

WOJ26 Lost in WHU 矩陣快速冪

分類 matrixmath woj26 lost in whu 給定乙個 n 個頂點的對稱矩陣g 1 n 100 aij 表示可以從點 i 一步到點 j,求在 t 時刻之前能從1到 n 的方案數。1 t 10 9 注意 如果在時刻tx 已經到達了點 n 則終止。題意是求在0,1,2,3,t時刻到達 ...

矩陣快速冪優化遞推式

文章原位址 第一行第一列元素為第乙個矩陣的第一行的每個元素和第二個矩陣的第一列的每個元素乘積的和 以此類推 第i行第j列的元素就是第乙個矩陣的第i行的每個元素與第二個矩陣第j列的每個元素的乘積的和。單位矩陣 n n的矩陣 mat i i 1 任何乙個矩陣乘以單位矩陣就是它本身 n 單位矩陣 n,可以...

矩陣快速冪優化遞推總結

rt,主要總結一下矩陣的求法。首先能用矩陣快速冪優化的遞推型別是f n 5f n 3 6f n 2 2f n 1 n 2 n 8之類的 也就是說遞推是線性遞推且f n i 前面的係數是常數,可以含有與n有關的多項式,也可以含有常數的這種遞推,下面總結一下矩陣的寫法 先考慮最簡單的常數,我們其實可以忽...