记录编号 |
590932 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[Ural 1223] 鹰蛋 |
最终得分 |
100 |
用户昵称 |
李奇文 |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
2.988 s |
提交时间 |
2024-07-13 14:39:00 |
内存使用 |
11.02 MiB |
显示代码纯文本
#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(){
freopen("eagleegg.in","r",stdin);
freopen("eagleegg.out","w",stdout);
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;
}