week14作業E Q老師度假

2021-10-06 10:34:32 字數 1512 閱讀 3224

忙碌了乙個學期的 q老師 決定獎勵自己 n 天假期。

假期中不同的穿衣方式會有不同的快樂值。

已知 q老師 一共有 m 件襯衫,且如果昨天穿的是襯衫 a,今天穿的是襯衫 b,則 q老師 今天可以獲得 f[a][b] 快樂值。

在 n 天假期結束後,q老師 最多可以獲得多少快樂值?

輸入:

輸入檔案包含多組測試樣例,每組測試樣例格式描述如下:

第一行給出兩個整數 n m,分別代表假期長度與 q老師 的襯衫總數。(2 ≤ n ≤ 100000, 1 ≤ m ≤ 100)

接下來 m 行,每行給出 m 個整數,其中第 i 行的第 j 個整數,表示 f[i][j]。(1 ≤ f[i][j] ≤ 1000000)

測試樣例組數不會超過 10。

輸出:

每組測試樣例輸出一行,表示 q老師 可以獲得的最大快樂值。

樣例輸入:

3 20 1

1 04 3

1 2 3

1 2 3

1 2 3

樣例輸出:29

f[i][j]表示第 i 天,穿的衣服為 j 所獲得的快樂值總和。

這題最關鍵的是想到把累加替換為max,乘法替換為加法。

因為矩陣快速冪要求矩陣乘法具有結合律,而這樣替換滿足要求,所以可以用矩陣快速冪。

#include

#include

#include

#define ll long long

using

namespace std;

const

int n=

110;

int f[

110]

[110];

int dp[

110000][

110]

;struct matrix}}

return ret;

}matrix()

matrix

(const matrix& t)};

matrix quick_pow

(matrix a,

int x)

a=a*a;

x>>=1;

}return ret;

}int

main()

} matrix t1,t2;

for(

int i=

0;it2=

quick_pow

(t1,n-1)

; ll ans=0;

for(

int i=

0;icout<

}}

Week 14 作業D Q老師染磚

衣食無憂的 q老師 有一天突發奇想,想要去感受一下勞動人民的艱苦生活。具體工作是這樣的,有 n 塊磚排成一排染色,每一塊磚需要塗上紅 藍 綠 黃這 4 種顏色中的其中 1 種。且當這 n 塊磚中紅色和綠色的塊數均為偶數時,染色效果最佳。為了使工作效率更高,q老師 想要知道一共有多少種方案可以使染色效...

week14 作業C Q老師的考驗

q老師 對數列有一種非同一般的熱愛,尤其是優美的斐波那契數列。當 x 10 時,f x x 當 x 10 時,f x a0 f x 1 a1 f x 2 a2 f x 3 a9 f x 10 ai 只能為 0 或 1。q老師 將給定 a0 a9,以及兩個正整數 k m,詢問 f k m 的數值大小。...

week14 作業D Q老師染磚

衣食無憂的 q老師 有一天突發奇想,想要去感受一下勞動人民的艱苦生活。具體工作是這樣的,有 n 塊磚排成一排染色,每一塊磚需要塗上紅 藍 綠 黃這 4 種顏色中的其中 1 種。且當這 n 塊磚中紅色和綠色的塊數均為偶數時,染色效果最佳。為了使工作效率更高,q老師 想要知道一共有多少種方案可以使染色效...