7月17日是mr.w的生日,acm-thu為此要製作乙個體積為nπ的m層
生日蛋糕,每層都是乙個圓柱體。
設從下往上數第i(1<=i<=m)層蛋糕是半徑為\(r_i\), 高度為\(h_i\)的圓柱。當i\(r_i>r_\) 且 \(h_i>h_\) 。
由於要在蛋糕上抹忌廉,為盡可能節約經費,我們希望蛋糕外表面(最下一層的下底面除外)的面積q最小。
令\(q= sπ\)
請程式設計對給出的n和m,找出蛋糕的製作方案(適當的ri和hi的值),使s最小。
(除q外,以上所有資料皆為正整數)
輸入格式:
有兩行,第一行為n(n<=20000),表示待製作的蛋糕的體積為nπ;第二行為m(m<=15),表示蛋糕的層數為m。
輸出格式:
僅一行,是乙個正整數s(若無解則s=0)。
輸入樣例#1:
1002
輸出樣例#1:
剪枝+搜尋
本來自己的剪枝
如果當前答案比最優解大,return
如果當前答案比要求體積大,return
如果當前體積+後面的最大體積
這樣wa了乙個點.
看了題解之後,把第三個剪枝換成了
如果當前答案+後面能得到的最大表面積依然》=答案,return
其實還有一些其他的剪枝,但這些就夠了
#include#define in(i) (i=read())
using namespace std;
inline int read()
while(i>='0' && i<='9')
return ans*f;
}const int inf=2147483647;
int n,m,ans=inf;
void dfs(int floor,int sum,int v,int r,int h)
}}int main()
{ in(n); in(m);
dfs(1,0,0,sqrt(n)+1,n+1);
if(ans==inf) cout<<0
noi 1999 生日蛋糕
題目描述 4月16日是nanae的生日,josnch為此要製作乙個體積為n 的m層生日蛋糕,每層都是乙個圓柱體。設從下往上數第i 1 i m 層蛋糕是半徑為ri,高度為hi的圓柱。當i m時,要求ri ri 1且hi hi 1。由於要在蛋糕上抹忌廉,為盡可能節約經費,我們希望蛋糕外表面 最下一層的下...
NOI1999 生日蛋糕
noi1999 生日蛋糕 7月17日是mr.w的生日,acm thu為此要製作乙個體積為n 的m層生日蛋糕,每層都是乙個圓柱體。設從下往上數第i 1 i m 層蛋糕是半徑為ri,高度為hi的圓柱。當i時,要求ri ri 1且hi hi 1。由於要在蛋糕上抹忌廉,為盡可能節約經費,我們希望蛋糕外表面 ...
NOI1999 生日蛋糕題解
還是被這個立體的結構嚇到了,隔了半年才 題目描述 7月17日是mr.w的生日,acm thu為此要製作乙個體積為n 的m層 生日蛋糕,每層都是乙個圓柱體。設從下往上數第i 1 i m 層蛋糕是半徑為ri,高度為hi的圓柱。當ir i r ri ri 1 且h i h hi hi 1 由於要在蛋糕上抹...