记录编号 590932 评测结果 AAAAAAAAAA
题目名称 [Ural 1223] 鹰蛋 最终得分 100
用户昵称 Gravatar李奇文 是否通过 通过
代码语言 C++ 运行时间 2.988 s
提交时间 2024-07-13 14:39:00 内存使用 11.02 MiB
显示代码纯文本
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int f[1005][1005],n,m,mp[1001][1001];
  4. int dfs(int x,int y){
  5. if(mp[x][y]==1) return f[x][y];
  6. f[x][y]=0x3f3f3f3f;
  7. 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);
  8. mp[x][y]=1;
  9. return f[x][y];
  10. }
  11. inline int read(){
  12. int x=0,f=1;
  13. char ch=getchar();
  14. while(ch<'0'||ch>'9'){
  15. if(ch=='-') f=-1;
  16. ch=getchar();
  17. }
  18. while(ch>='0'&&ch<='9'){
  19. x=x*10+(ch-'0');
  20. ch=getchar();
  21. }
  22. return x*f;
  23. }
  24. inline void write(int x){
  25. if(x<0){
  26. putchar('-');
  27. x=-x;
  28. }
  29. if(x>9) write(x/10);
  30. putchar(x%10+'0');
  31. }
  32. int main(){
  33. freopen("eagleegg.in","r",stdin);
  34. freopen("eagleegg.out","w",stdout);
  35. for(int i=1;i<=1000;i++){
  36. f[0][i]=0,f[i][1]=i;
  37. mp[0][i]=1,mp[i][1]=1;
  38. }
  39. while(m=read(),n=read()){
  40. if(m==0&&n==0){
  41. break;
  42. }
  43. write(dfs(n,m));
  44. }
  45. return 0;
  46. }
  47.