天天看点

uva 10934 有k个气球 用高n层楼来测试气球硬度 求最小扔几次可以测出来

#include<cstdio>
#include<cstring>
using namespace std;
long long dp[160][80],n;
int k;
int main(){
	for(int i=1;i<=100;i++)
	for(int j=1;j<=64;j++)
	dp[i][j]=dp[i-1][j-1]+dp[i][j-1]+1;
	while(scanf("%d%lld",&k,&n) ==2  && k && n){
		int flag=0;
		for(int i=1;i<64;i++)
		if(dp[k][i]>=n){
			flag=i;
			break;
		}
		if(flag) printf("%d\n",flag);
		else printf("More than 63 trials needed.\n");
	}
}