| 比赛 | 2024暑假C班集训D | 评测结果 | RRRRRRRRRR | 
    | 题目名称 | 鹰蛋 | 最终得分 | 0 | 
    | 用户昵称 | 李奇文 | 运行时间 | 2.148 s | 
    | 代码语言 | C++ | 内存使用 | 10.64 MiB | 
    | 提交时间 | 2024-07-13 11:34:09 | 
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int f[1005][1005],n,m,mp[1001][1001];
int dfs(int x,int y){
	if(mp[x][y]==1) return f[x][y];
	f[x][y]=0x3f3f3f3f;
	for(int i=1;i<=x;i++) f[x][y]=min(f[x][y],max(dfs(i-1,y-1),dfs(x-i,y))+1);
	mp[x][y]=1;
	return f[x][y];
}
inline int read(){
	int x=0,f=1;
	char ch=getchar();
	while(ch<'0'||ch>'9'){
		if(ch=='-') f=-1;
		ch=getchar();
	}
	while(ch>='0'&&ch<='9'){
		x=x*10+(ch-'0');
		ch=getchar();
	}
	return x*f;
}
inline void write(int x){
	if(x<0){
		putchar('-');
		x=-x;
	}
	if(x>9) write(x/10);
	putchar(x%10+'0');
}
int main(){
	for(int i=1;i<=1000;i++){
		f[0][i]=0,f[i][1]=i;
		mp[0][i]=1,mp[i][1]=1;
	}
	while(m=read(),n=read()){
		if(m==0&&n==0){
			break;
		}
		write(dfs(n,m));
	}
	return 0;
}