Week14 作業(選做) 矩陣快速冪dp

2021-10-07 02:31:41 字數 1731 閱讀 2861

思路:矩陣快速冪優化dp,

首先,定義a[i]為染i塊磚時,紅綠均偶數的方案數。

b[i]:紅綠均奇數,c[i]:紅綠一奇數一偶數。

那麼我們可以得到三個狀態轉移方程:

很明顯,我們可以得到乙個等式:

是不是很直觀了呢,我們只需要知道a[1]=2,b[1]=0,c[1]=2就可以求出所有的情況。

完整**:

定義dp[i][j]為第i天穿第j件衣服所獲得的最大快樂值,我們得到狀態轉移方程:

那麼直接進行遍歷肯定是會超時的,這裡需要使用矩陣快速冪優化,只需要把矩陣乘過載成上面的形式就行了。

具體見**:

#include

#include

#include

#define ll long long

using

namespace std;

const

int n=

105;

int n,m;

struct matrix}}

return tmp;

}matrix()

};matrix quick_pow

(matrix x,

int e)

x=x*x;

e=e>>1;

}return tmp;

}int

main()

} ansm=

quick_pow

(h,n-1)

; ll ans=0;

for(

int i=

0;i)for

(int j=

0;j) cout<

}return0;

}

Week14作業 C Q老師的考驗 矩陣快速冪

q老師 對數列有一種非同一般的熱愛,尤其是優美的斐波那契數列。這一天,q老師 為了增強大家對於斐波那契數列的理解,決定在斐波那契的基礎上建立乙個新的數列 f x 來考一考大家。數列 f x 定義如下 當 x 10 時,f x x 當 x 10 時,f x a0 f x 1 a1 f x 2 a2 f...

程式設計思維week14 選做題

然而還要結合dp 關於矩陣快速冪,以前學的時候寫過一篇部落格 還是和普通快速冪一樣的原理,通過二進位制拆分指數來讓冪的複雜度降到log級別,但是和普通快速冪的應用環境不同,矩陣快速冪常用來優化遞推式的計算,比較經典的問題就是求斐波那契數列的第1e7 項,這個問題在以前的部落格裡也寫過了。這周遇到的問...

week14作業E Q老師度假

忙碌了乙個學期的 q老師 決定獎勵自己 n 天假期。假期中不同的穿衣方式會有不同的快樂值。已知 q老師 一共有 m 件襯衫,且如果昨天穿的是襯衫 a,今天穿的是襯衫 b,則 q老師 今天可以獲得 f a b 快樂值。在 n 天假期結束後,q老師 最多可以獲得多少快樂值?輸入 輸入檔案包含多組測試樣例...