HDU 1078 FatMouse and Cheese【记忆化搜索】
2015-03-08 15:09
357 查看
题意:给出n*n的二维矩阵,和k,老鼠每次最多走k步,问老鼠从起点(0,0)出发,能够得到的最大的数(即为将每走过一点的数都加起来的和最大)是多少
和上一题滑雪一样,搜索的方向再加一个循环
View Code
和上一题滑雪一样,搜索的方向再加一个循环
#include<iostream> #include<cstdio> #include<cstring> #include <cmath> #include<algorithm> using namespace std; typedef long long LL; int a[1005][1005],d[1005][1005],n,k; int dir[4][2]={1,0,-1,0,0,1,0,-1}; int dfs(int x,int y){ if(d[x][y]) return d[x][y];//如果已经搜过这一点,则直接返回,不用再重复计算 int ans=0; for(int j=1;j<=k;j++){ for(int i=0;i<4;i++){ //四个 方向搜 int nx=x+dir[i][0]*j; int ny=y+dir[i][1]*j; if(nx<0||nx>=n||ny<0||ny>=n) continue;//越界 if(a[x][y]<a[nx][ny]) ans=max(ans,dfs(nx,ny)); } } return d[x][y]=ans+a[x][y]; } int main() { while(scanf("%d %d",&n,&k)!=EOF&&n!=-1&&k!=-1){ for(int i=0;i<n;i++) for(int j=0;j<n;j++) cin>>a[i][j]; memset(d,0,sizeof(d)); printf("%d\n",dfs(0,0)); } return 0; }
View Code
相关文章推荐
- FatMouse and Cheese_hdu_1078(记忆化搜索).java
- 【记忆化搜索】HDU 1078 FatMouse and Cheese
- HDU 1078 FatMouse and Cheese【记忆化搜索】
- HDU 1078 FatMouse and Cheese(记忆化搜索)
- !HDU 1078 FatMouse and Cheese-dp-(记忆化搜索)
- HDU-1078 FatMouse and Cheese ( 记忆化搜索 )
- 每日三题-Day5-C(HDU 1078 FatMouse and Cheese 记忆化搜索)
- hdu 1078 FatMouse and Cheese(记忆化搜索)
- 【记忆化搜索】HDU-1078 FatMouse and Cheese
- hdu 1078 FatMouse and Cheese(记忆化搜索)
- hdu 1078 FatMouse and Cheese(记忆化搜索)
- HDU 1078 FatMouse and Cheese(记忆化搜索)
- HDU - 1078 FatMouse and Cheese(记忆化搜索)
- HDU - 1078 FatMouse and Cheese (记忆化搜索)
- hdu 1078 FatMouse and Cheese 记忆化搜索
- HDU 1078 FatMouse and Cheese (记忆化搜索)
- hdu 1078 FatMouse and Cheese(记忆化搜索)
- 记忆化搜索:HDU1078-FatMouse and Cheese(记忆化搜索)
- !HDU 1078 FatMouse and Cheese-dp-(记忆化搜索)
- hdu 1078 FatMouse and Cheese(记忆化搜索)