hdu 1078

2018-01-31 08:04:08来源:cnblogs.com作者:YMin-One人点击

分享
 1 #include<iostream> 2 #include<string.h> 3 #include<algorithm> 4 using namespace std; 5 int A[150][150]; 6 int dp[150][150]; 7 int maxv=0; 8 int n,m; 9 int tr[4][2]= {{-1,0},{1,0},{0,-1},{0,1}};//上下左右10 int Find(int x,int y)11 {12     if(dp[x][y]!=0) return dp[x][y];13     for(int i=0; i<4; i++)14     {15         for(int j=1; j<=m; j++)16         {17             int x1,y1;18             if(tr[i][0]==1)19             {20                 x1=x+j;21                 y1=y;22             }23             if(tr[i][0]==-1)24             {25                 x1=x-j;26                 y1=y;27             }28             if(tr[i][1]==-1)29             {30                 x1=x;31                 y1=y-j;32             }33             if(tr[i][1]==1)34             {35                 x1=x;36                 y1=y+j;37             }38             if(x1>=1&&x1<=n&&y1>=1&&y1<=n&&A[x][y]<A[x1][y1])39             {40                 dp[x][y]=max(Find(x1,y1)+A[x1][y1],dp[x][y]);41             }42         }43     }44     return dp[x][y];45 }46 int main()47 {48 49     while(cin>>n>>m)50     {51         maxv=0;52         if(n==-1&&m==-1) break;53         memset(dp,0,sizeof(dp));54         memset(A,0,sizeof(A));55         for(int i=1; i<=n; i++)56         {57             for(int j=1; j<=n; j++)58             {59                 cin>>A[i][j];60             }61         }62         Find(1,1);63         cout<<dp[1][1]+A[1][1]<<endl;64     }65 66 }

最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台