• HDU1087


     1 /*记忆化dfs+dp,因为每次最多走k步,所以上下左右的方向有所扩展,
     2 dp[i][j]存的是从dp[i][j]出发能吃的最大个数*/
     3 #include<stdio.h>
     4 #include<string.h>
     5 #include<algorithm>
     6 using namespace std;
     7 const int maxn=110;
     8 int map[maxn][maxn],vis[maxn][maxn];
     9 int dp[maxn][maxn];//dp[i][j]表示从i,j出的最大蛋糕数目
    10 int n,m,k;
    11 void init()
    12 {
    13     memset(dp,0,sizeof(dp));
    14     memset(vis,0,sizeof(vis));
    15 }
    16 int dfs(int x,int y)
    17 {
    18     if(dp[x][y]) return dp[x][y];
    19     int i,j;
    20     dp[x][y]=map[x][y];
    21     for(i=1;i<=k;i++)
    22     {
    23           if(x-i>=1 && map[x-i][y]>map[x][y])
    24           {
    25               dp[x][y]=max(dp[x][y],dfs(x-i,y)+map[x][y]);
    26           }
    27           if(x+i<=n && map[x+i][y]>map[x][y])
    28           {
    29               dp[x][y]=max(dp[x][y],dfs(x+i,y)+map[x][y]);
    30           }
    31           if(y-i>=1 && map[x][y-i]>map[x][y])
    32           {
    33               dp[x][y]=max(dp[x][y],dfs(x,y-i)+map[x][y]);
    34           }
    35           if(y+i<=n && map[x][y+i]>map[x][y])
    36           {
    37               dp[x][y]=max(dp[x][y],dfs(x,y+i)+map[x][y]);
    38           }
    39     }
    40     return dp[x][y];
    41 }
    42 int main()
    43 {
    44     int i,j;
    45     while(scanf("%d%d",&n,&k)!=EOF)
    46     {
    47         if(n==-1 && k==-1) break;
    48         for(i=1;i<=n;i++)
    49         for(j=1;j<=n;j++)
    50         scanf("%d",&map[i][j]);
    51         init();
    52         printf("%d
    ",dfs(1,1));
    53     }
    54     return 0;
    55 }
  • 相关阅读:
    创建类以及引用一个类
    修改hosts文件
    微信第三方登录接口开发
    Android定位
    Leetcode 102. Binary Tree Level Order Traversal
    Leetcode 725. Split Linked List in Parts
    Leetcode 445. Add Two Numbers II
    Leetcode 328. Odd Even Linked List
    Leetcode 237. Delete Node in a Linked List
    Leetcode 234. Palindrome Linked List
  • 原文地址:https://www.cnblogs.com/okboy/p/3269216.html
Copyright © 2020-2023  润新知