題面:
題解見**注釋 (或者我回來會放我在洛谷上寫的題解)
/*設 g[i] 為i的lqp拆分的權值和,則 g[i] = ∑f[j] * g[i-j] + f[i],其中 g[0] = 0, g[1] = 1.
以前是推式子推出來結果的,那麼今天就嘗試用生成函式做一下:
設 a = ∑f[i] * x^i , b = ∑g[i] * x^i ,那麼 => b = a*b + a.
解一下 b ,發現 b = a/(1-a);
又∵ a的閉形式是 x/(1 - x - x^2) [斐波那契數的生成函式閉形式].
∴ b = x/(1 - 2x - x^2) ,於是直接由b的特徵根 得出g的遞推式 => g[i] = 2*g[i-1] + g[i-2].
(生成函式太好用了2333)
*/#include#define ll long long
using namespace std;
const int ha=1000000007;
const int maxn=1000005;
inline int add(int x,int y)
int main()
國家集訓隊 整數的lqp劃分 題解
給你乙個 n 已知 fib 0 0,fib 1 1,fib n fib fib n 1 求 sum limits prod limits mfib mod 10 9 7 設數列 b k sum limits prod limits mfib f x k 所求即為 b n 我們設其生成函式為 g x ...
Luogu4451 國家集訓隊 整數的lqp拆分
題目大意 求對於所有 n 的拆分 a i 使得 sum ma i n prod mf 之和。其中 f i 為斐波那契數列的第 i 項。資料範圍 n leq 10 6 首先不要被這個 國家集訓隊 給嚇到了,其實很簡單的。首先考慮打表,逃 顯然一眼就能想到卷積,設 f x 為 f 的生成函式。則 f x...
國家集訓隊 旅遊
題目背景 ray 樂忠於旅遊,這次他來到了 t 城。t 城是乙個水上城市,一共有 nn 個景點,有些景點之間會用一座橋連線。為了方便遊客到達每個景點但又為了節約成本,t 城的任意兩個景點之間有且只有一條路徑。換句話說,t 城中只有 n 1n 1 座橋。ray 發現,有些橋上可以看到美麗的景色,讓人心...