深搜剪枝 生日蛋糕

2021-08-21 20:31:37 字數 984 閱讀 9157

時間限制: 1 sec  記憶體限制: 128 mb

提交: 14  解決: 8

[提交][狀態][討論版][命題人:add_cy]

7月17日是mr.w的生日,acm-thu為此要製作乙個體積為nπ的m層生日蛋糕,每層都是乙個圓柱體。

設從下往上數第i(1 <= i <= m)層蛋糕是半徑為ri, 高度為hi的圓柱。當i < m時,要求ri > ri+1且hi > hi+1。

由於要在蛋糕上抹忌廉,為盡可能節約經費,我們希望蛋糕外表面(最下一層的下底面除外)的面積q最小。

令q = sπ

請程式設計對給出的n和m,找出蛋糕的製作方案(適當的ri和hi的值),使s最小。

(除q外,以上所有資料皆為正整數)

有兩行,第一行為n(n <= 10000),表示待製作的蛋糕的體積為n;

第二行為m(m <= 20),表示蛋糕的層數為m。

僅一行,是乙個正整數s(若無解則s = 0)。

100

2

68
圓柱公式

體積v = πr2h

側面積a' = 2πrh

底面積a = πr2

從下往上搜,列舉搜尋面對的狀態有:正在搜尋蛋糕第dep層,當前外表面面積s,當前體積v,第dep+1層的高度和半徑

整個蛋糕的上表面面積之和等於最底層的圓面積,可以在第dep層直接累加到s中。這樣在第dep-1層往上的搜尋中,只需計算側面積

#include#include#include#include#include#include#define inf 0x3f3f3f3f

using namespace std;

int n,m,ans=0;

void dfs(int dep,int s,int v,int lasth,int lastr)

}}int main()

poj 1190 生日蛋糕(剪枝 深搜)

題目位址 題目大意 n 體積m層的蛋糕,使得表面積最小 解題思路 將蛋糕從上到下編號1.m,從m層開始搜尋,搜尋過程中注意剪枝 三個剪枝條件 1 已經搜尋過的體積加上還未搜尋過的最小體積不能比總體積n 大 2 已經搜尋過的表面積加上還未搜尋過的最小表面積不能比之前的最小總表面積best 大 3 n ...

POJ1190 生日蛋糕(深搜 剪枝)

描述 7月17日是mr.w的生日,acm thu為此要製作乙個體積為n 的m層生日蛋糕,每層都是乙個圓柱體。設從下往上數第i 1 i m 層蛋糕是半徑為ri,高度為hi的圓柱。當i m時,要求ri ri 1且hi hi 1。由於要在蛋糕上抹忌廉,為盡可能節約經費,我們希望蛋糕外表面 最下一層的下底面...

生日蛋糕 搜尋剪枝

更新提示 第一次更新 正文 7月17日是mr.w的生日,acm thu為此要製作乙個體積為n 的m層生日蛋糕,每層都是乙個圓柱體。設從下往上數第i 1 i m 層蛋糕是半徑為ri,高度為hi的圓柱。當i m時,要求ri ri 1且hi hi 1。由於要在蛋糕上抹忌廉,為盡可能節約經費,我們希望蛋糕外...