zoukankan      html  css  js  c++  java
  • hdu1078 dfs+dp(记忆化搜索)搜索一条递增路径,路径和最大,起点是(0,0)

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 typedef unsigned int ui;
     4 typedef long long ll;
     5 typedef unsigned long long ull;
     6 #define pf printf
     7 #define prime1 1e9+7
     8 #define prime2 1e9+9
     9 #define scand(x) scanf("%llf",&x)
    10 #define f(i,a,b) for(int i=a;i<=b;i++)
    11 #define scan(a) scanf("%d",&a)
    12 #define dbg(args) cout<<#args<<":"<<args<<endl;
    13 #define pb(i) push_back(i)
    14 #define ppb(x) pop_back(x)
    15 #define maxn 1005
    16 int n,k,t;
    17 int Map[maxn][maxn],dp[maxn][maxn];
    18 int dir[][2]={{0,1},{0,-1},{-1,0},{1,0}};
    19 bool ok(int x,int y)
    20 {
    21     if(x<0||x>=n||y<0||y>=n)return false;
    22     return true;
    23 }
    24 int dfs(int x,int y)
    25 {
    26     if(dp[x][y])return dp[x][y];
    27     int temp=0;
    28     int M=0;
    29     f(i,0,3)
    30         f(j,1,k)
    31         {
    32             int xx=x+dir[i][0]*j;
    33             int yy=y+dir[i][1]*j;
    34             if(ok(xx,yy)&&Map[xx][yy]>Map[x][y])
    35             {
    36                 temp=dfs(xx,yy);
    37                 if(temp>dp[xx][yy])dp[xx][yy]=temp;
    38                 if(dp[xx][yy]>M)M=dp[xx][yy];
    39             }
    40         }
    41         
    42     return dp[x][y]=Map[x][y]+M;
    43 }
    44 int main()
    45 {
    46     std::ios::sync_with_stdio(false);
    47     while(scanf("%d%d",&n,&k)==2&&!(k==-1&&n==-1))
    48     {
    49         memset(dp,0,sizeof(dp));
    50         f(i,0,n-1)
    51             f(j,0,n-1)
    52             {
    53                 scan(Map[i][j]);
    54             }
    55         dp[0][0]=dfs(0,0);
    56         pf("%d
    ",dp[0][0]);
    57     }
    58  } 
  • 相关阅读:
    Ubuntu “Failed to fetch”错误的解决方法
    #ifndef 与#pragma once
    vs TODO list使用
    window脚本编写bat程序执行
    vtk 的qt插件编译
    git bash 下载加速
    条件欧几里得聚类 pcl::ConditionalEuclideanClustering
    ANY数据类型的使用
    《C#编程风格》还记得多少
    驼峰命名法则
  • 原文地址:https://www.cnblogs.com/randy-lo/p/12384698.html
Copyright © 2011-2022 走看看