Vijos1059 積木城堡 DP

2021-08-18 07:21:21 字數 611 閱讀 6484

一開始我想到對於每個城堡,每塊積木可以看做物品,但是思路侷限n個城堡這裡,沒有找到突破口。

這題本質是乙個01揹包,但是思路十分的巧妙。

還是最初的想法,每塊積木可以看做物品,那麼我們就可以知道這個城堡中的積木可以得到的所有可能高度。

以此,就可以得到所有城堡可能的高度。最後找出所有可能高度中最高的那個即可。

空間開銷,每個城堡最高為100*100,共有100個城堡。其實可以每次讀入一座城堡的資訊,就即時進行dp,得到當前前n做城堡可以達到的最大高度。

#include

using

namespace

std;

const

int nmax = 10005;

int dp[nmax];

int ans[nmax];

int a[105];

int n;

int main()

for(int i = 0;i<=10000;++i) ans[i] &= dp[i];

}for(int i = 10000;i>=0;--i)

if(ans[i])

return

0;}

vijos 1059 積木城堡 暴力

xc的兒子小xc最喜歡玩的遊戲用積木壘漂亮的城堡。城堡是用一些立方體的積木壘成的,城堡的每一層是一塊積木。小xc是乙個比他爸爸xc還聰明的孩子,他發現壘城堡的時候,如果下面的積木比上面的積木大,那麼城堡便不容易倒。所以他在壘城堡的時候總是遵循這樣的規則。小xc想把自己壘的城堡送給幼兒園裡漂亮的女孩子...

18 03 20 vijos1059積木城堡

xc的兒子小xc最喜歡玩的遊戲用積木壘漂亮的城堡。城堡是用一些立方體的積木壘成的,城堡的每一層是一塊積木。小xc是乙個比他爸爸xc還聰明的孩子,他發現壘城堡的時候,如果下面的積木比上面的積木大,那麼城堡便不容易倒。所以他在壘城堡的時候總是遵循這樣的規則。小xc想把自己壘的城堡送給幼兒園裡漂亮的女孩子...

vijos 積木城堡

恰似今天更了七章 我該怎麼辦 看上去好像只能瘋狂寫揹包啦 他們說周四化學通練,我好慌 描述 第一行是乙個整數n n 100 表示一共有幾座城堡。以下n行每行是一系列非負整數,用乙個空格分隔,按從下往上的順序依次給出一座城堡中所有積木的稜長。用 1結束。一座城堡中的積木不超過100塊,每塊積木的稜長不...