描述:你有一棟n層的大樓和k個球,詢問至少需要多少次確定球的硬度
分析:對於球的硬度,即是在高度為i時,球沒碎掉,而在高度為i+1時,球碎掉了,此時便可以確定球的硬度為i.code:主要是對於題目的理解:最壞情況是在最後一層但你不知道 約束在於球的個數有限制
完了分類:能否破掉進行轉移
#include
#include
#include
#include
#include
#include
#include
#define fo(i,a,b) for(int i=a;i<=b;i++)
#define fod(i,a,b) for(int i=a;i>=b;i--)
using
namespace
std;
const
int n=1e2+10,m=63+10;
unsigned
long
long k,n,
f[n][m];//i個球,j次實驗
void init()
int main()
if(ans==-1) printf("more than 63 trials needed.\n");
else
printf("%d\n",ans);
}return
0;}
UVA 10934 經典DP,「扔水球」
題目大致意思就是 有n個水球,它們沒有區別。現在從樓上扔它們,自然當樓層很高時,水球就會炸掉。而且水球炸是有乙個臨界點的,比如在仍下去炸了,那在4,5,6 扔下去都會炸,1 2 就不會炸。現在問,給你k個水球,最壞情況下至少需要扔多少次,就能確定這個臨界點。如果只有乙個水球,n層樓,那結果就是n次。...
UVa10934 裝滿水的氣球
uva10934 解析 設還剩i個氣球,j次機會時能夠測得的最大高度為d i j 換句話說,就是d i j 層內,可以用i個氣球j次機會測出氣球硬度為j 可以知道 例項 include includeusing namespace std const int maxk 100 const int m...
動態規劃(裝滿水的氣球,uva 10934)
一開始 rte 是因為用了 i64d而沒用 lld。在vj上做的忘了是uva上的題 後來 tle 是因為用了 while scanf lld lld k,n k n 而沒用 while scanf lld lld k,n k 題目描述與樣例輸入不符。還記得劉汝佳的一句話 程式要盡量寫的魯棒,因為哪怕...