積木城堡 dp

2022-07-01 16:15:09 字數 1258 閱讀 5976

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

小xc想把自己壘的城堡送給幼兒園裡漂亮的女孩子們,這樣可以增加他的好感度。為了公平起見,他決定把送給每個女孩子一樣高的城堡,這樣可以避免女孩子們為了獲得更漂亮的城堡而引起爭執。可是他發現自己在壘城堡的時候並沒有預先考慮到這一點。所以他現在要改造城堡。由於他沒有多餘的積木了,他靈機一動,想出了乙個巧妙的改造方案。他決定從每乙個城堡中挪去一些積木,使得最終每座城堡都一樣高。為了使他的城堡更雄偉,他覺得應該使最後的城堡都盡可能的高。 

任務: 

請你幫助小xc編乙個程式,根據他壘的所有城堡的資訊,決定應該移去哪些積木才能獲得最佳的效果。

輸入格式 input format

第一行是乙個整數n(n<=100),表示一共有幾座城堡。以下n行每行是一系列非負整數,用乙個空格分隔,按從下往上的順序依次給出一座城堡中所有積木的稜長。用-1結束。一座城堡中的積木不超過100塊,每塊積木的稜長不超過100。

第一行是乙個整數n(n<=100),表示一共有幾座城堡。以下n行每行是一系列非負整數,用乙個空格分隔,按從下往上的順序依次給出一座城堡中所有積木的稜長。用-1結束。一座城堡中的積木不超過100塊,每塊積木的稜長不超過100。

乙個整數,表示最後城堡的最大可能的高度。如果找不到合適的方案,則輸出0。

2

2 1 -1

3 2 1 -1

3
思路:

搭好積木再拿走就相當於當初建的時候沒有使用被拿走的積木。

類似於砝碼稱重問題,本題對每乙個城堡,用法碼承重問題 類似的思路可以得到這個城堡的所有可能高度。然後對所有可能的高度進行從大到小的遍歷,得到第乙個滿足所有城堡的高度值即是答案。

#include #include 

#include

#include

#include

using

namespace

std;

int f[110][110

];bool can[110][10010];

intn,tot,cnt,cc,ccnt,maxn;

intmain()}}

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

}if(f==1

)

}return0;

}

積木城堡 dp

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

Vijos1059 積木城堡 DP

一開始我想到對於每個城堡,每塊積木可以看做物品,但是思路侷限n個城堡這裡,沒有找到突破口。這題本質是乙個01揹包,但是思路十分的巧妙。還是最初的想法,每塊積木可以看做物品,那麼我們就可以知道這個城堡中的積木可以得到的所有可能高度。以此,就可以得到所有城堡可能的高度。最後找出所有可能高度中最高的那個即...

vijos 積木城堡

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