有些題目可以進行二維dp,當然這題用四維也可以做。
我們先做每一行,f,表示第i個用j次,塗前k個的最大值。
做完後,可以把它看作分組揹包問題,每個木板都是乙個物品,再跑一邊dp即可
#includeusingview codenamespace
std;
const
int n=3e5+10
;int f[55][2510][55
];int g[55][2510
];string
s[n];
int w[55][55][55
];int
main()}}
for(k=1;k<=n;k++)}}
}int ans=0
;
for(i=1;i<=n;i++)
}cout
}
小小粉刷匠(區間dp)
題目鏈結 牛客網 lalala,我是乙個快樂的粉刷匠 小名一邊快活地唱著歌,一邊開心地刷著牆 興致突然被打斷,小名,你今天如果刷不完這一棟樓的牆,那麼你就等著被炒魷魚吧 老闆聲嘶力竭的吼著。苦惱的小名因為不想被炒魷魚,所以希望盡量快地刷完牆,由於他本人的數學基礎很差,他現在請你來幫助他計算最少完成每...
粉刷匠的難題
粉刷匠遇到了乙個難題 有n根柱子排成一條直線,需要給柱子塗上顏色,現在共有k種顏色,每根柱子塗不同顏色的費用不同。並且要求相鄰柱子顏色不同。你能幫他計算最小的支出費用嗎?費用通過乙個n k 的矩陣給出,比如cost 0 0 表示柱子0塗顏色0的費用,cost 1 2 表示柱子1塗顏色2的費用。測試輸...
粉刷匠 集體照
有m個種類的球,第i個種類有r i 個球,把球排成一行是使得相鄰兩個球種類不同,問方案數。我們可以乙個種類乙個種類的放球。兩個球中間以及最前最後都有 空 定義非法空指該空兩端是同色球,合法空反之。設f i,j 表示當前做到種類i,有j個合法空。此時有個sum表示空的總數。我們可以列舉這r i 個球放...