题意:
有m个相同的玻璃球,n层楼,你想知道这些玻璃球从第几层往下落的时候会摔烂。
最坏情况下最少需要扔多少次玻璃球才能测出玻璃球的强度?
如果还不太明了题意,就看我从别的网页上转来的一段,讲的是最基本的两个玻璃球的情况:
DP[m][n]表示m个球,n次机会,最多能在多少层楼的情况下检测出。 则 if(i>j) DP[i][j]=DP[j][j]; else DP[i][j]=DP[i-1][j-1]+DP[i][j-1]+1; 最后二分DP[ballnum]数组即可。 不过要注意中间可能DP的值超大,所以在上面两行之后加上一句: if(DP[i][j]>1010) DP[i][j]=1010; 防止超范围