URAL 1223. Chernobyl’ Eagle on a Roof

题目链接

以前做过的一题,URAL数据强点,优化了一下。

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 #include <queue>
 5 #include <map>
 6 #include <ctime>
 7 #include <cmath>
 8 #include <algorithm>
 9 using namespace std;
10 int dp[1001][11];
11 int dfs(int n,int m)
12 {
13     int i,temp,ans;
14     if(dp[n][m] > 0)
15     return dp[n][m];
16     if(m == 1)
17     return n;
18     if(n <= 2)
19     return n;
20     ans = 100000;
21     for(i = 2;i <= n-1;i ++)
22     {
23         temp = max(dfs(i-1,m)+1,dfs(n-i,m-1)+1);
24         ans = min(temp,ans);
25     }
26     dp[n][m] = ans;
27     return dp[n][m];
28 }
29 int main()
30 {
31     int n,m;
32     while(scanf("%d%d",&n,&m)!=EOF)
33     {
34         if(n == 0&&m == 0) break;
35         if(n > 10) n = 10;
36         printf("%d
",dfs(m,n));
37     }
38     return 0;
39 }
原文地址:https://www.cnblogs.com/naix-x/p/3313958.html