hdu 3483 矩陣乘法

2022-05-22 16:03:14 字數 943 閱讀 4986

這個題目上週對抗賽題目,搞了我好久 對數學這種不是很敏感

其實都不是自己想出來的,看其他的資料和部落格的推導 還是有點難度的,反正我是推不出來

通過二項式定理的化簡

有兩個部落格寫得比較好

反正構造好二項式之後,乘n次,就可以得到結果了,因為右邊的式子 初始全部是x。

#include #include 

#include

#define ll __int64

using

namespace

std;

const

int maxn = 52

;ll c[maxn][maxn], a[maxn][maxn], b[maxn][maxn], t[maxn][maxn];

ll n,x,m;

void

init()

}memset(a,

0, sizeof

(a));

for (i = 0; i <= x; i++)

}memcpy(a[x+1], a[x], sizeof

(a[x]));

a[x+1][x+1] = 1

; memset(b,

0, sizeof

(b));

for (i = 0; i <= x+1; i++)

}void mul(long

long p[maxn][maxn], long

long

q[maxn][maxn])}}

memcpy(q, t,

sizeof

(t));

}void

cal()

mul(a, a);

n >>= 1

; }

}int

main()

return0;

}

hdu 3483 矩陣構造

這道題寒假的時候看過,還不小心看了題解,不過題解說神馬早就忘了,剛開始解題的時候完全想錯了,後來才想起來是用矩陣構造 這道題的確適合構造矩陣,因為所求的函式值滿足線性關係,令f n 為最終求解值 首先我們要明確如果用矩陣的作法,那麼矩陣乘法中,最終矩陣,必須包含f n 還可以包含其他函式g n h ...

hdu4920(矩陣 乘法)

題意 矩陣乘法,在乘的過程中每個元素都取模3 在比賽時,我一直在想怎麼才能把o n n n 的時間複雜度給降下來,可是一直沒想到好的辦法,後來看了題解後才知道原來時間複雜度還是o n n n 只是優化了一點而已 如下 include include include include include i...

HDU4920 矩陣乘法

嗯嗯 就算是水題吧。縮完行就15行 題意 兩個n n的矩陣相乘 n 800 結果對3取模 思路 先對3取模,所以兩個矩陣裡面會出現很多0,所以可以先列舉乙個矩陣,只有當該位置不是0的時候才和另乙個矩陣做乘法。取模的時候也有技巧,不要在計算的途中取模,應該讀入的時候取一次模,輸出的時候取一次模 計算量...