动态规划题
d[i][j]用i个球实验j次所能测试的楼的最高层数
#include<cstdio>
#include<algorithm>
#define LL long long
using namespace std;
const int maxn = 100+10;
LL n;
int k;
LL d[maxn][maxn];
void dp()
{
for(int i=1; i<65; i++)
for(int j=1; j<65; j++)
d[i][j]=d[i-1][j-1]+1+d[i][j-1];
}
int main()
{
dp();
while(scanf("%d %lld",&k,&n))
{
if(k==0)
break;
if(k>=64)
k=63;
int cnt=lower_bound(d[k],d[k]+65,n)-d[k];
if(cnt<64)
printf("%d\n",cnt);
else
printf("More than 63 trials needed.\n");
}
return 0;
}