记录编号 |
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;
- }
-