hdu-1078 FatMouse and Cheese (and) 滑雪问题(记忆化搜索+简单dp)
来源:互联网 发布:rpm安装java 编辑:程序博客网 时间:2024/05/21 21:46
记忆化搜索+简单dp
hdu-1078 FatMouse and Cheese题目链接:点击打开链接
题意:老鼠每次只能走K步停下来,所以多加一个for循环即可。停下的位置只能比上次停下的位置价值大
其实就是滑雪问题的加强版。用一个数组保存记忆。。。。
代码:
#include<cstdio>#include<cstring>#include<iostream>using namespace std;#define max(a,b) a<b?b:aint n,k;int map[111][111],sum[111][111];//sum[][]保存记忆。。。int dir[4][2]={0,-1,0,1,-1,0,1,0};int dfs(int x,int y){int m,ans=0;if(sum[x][y])return sum[x][y];for(int i=0;i<4;i++){for(int j=1;j<=k;j++)//遍历各个距离1~k{int s,t;s=x+dir[i][0]*j;//取点t=y+dir[i][1]*j;if(s>=0&&s<n&&t>=0&&t<n){if(map[s][t]>map[x][y])//下一个点必须比当前点数值大 {m=dfs(s,t);//记录下一个点的最大值ans=max(ans,m); }} } }sum[x][y]=ans+map[x][y];return sum[x][y];//返回当前点的最大值 }int main(){while(scanf("%d%d",&n,&k),n!=-1&&k!=-1){for(int i=0;i<n;i++)for(int j=0;j<n;j++)scanf("%d",&map[i][j]);memset(sum,0,sizeof(sum));int ans=dfs(0,0);printf("%d\n",ans);}return 0;}
下面是滑雪代码:大家可以参考对比一下,,,也方便自己复习总结。。。
#include <stdio.h>#include <string.h>int dir[4][2]={1,0,-1,0,0,1,0,-1};//方向int dp[101][101],map[101][101];//dp[x][y]保存记忆。。。int m,n;int max(int x,int y){return x>y?x:y;}bool limit(int x,int y)//是否出界{if(x<0||y<0||x==m||y==n)return false;return true;}int dfs(int x,int y){if(dp[x][y]!=0) return dp[x][y];for(int i=0;i<4;i++){int x_i=x+dir[i][0];int y_i=y+dir[i][1];if(limit(x_i,y_i)&&map[x][y]>map[x_i][y_i]&&dp[x][y]<dfs(x_i,y_i)+1)dp[x][y]=dp[x_i][y_i]+1;}return dp[x][y];}int main(){while(scanf("%d %d",&m,&n)!=EOF){memset(map,0,sizeof(map));memset(dp,0,sizeof(dp));for(int i=0;i<m;i++)for(int j=0;j<n;j++)scanf("%d",&map[i][j]);int num=0;for(int i=0;i<m;i++)for(int j=0;j<n;j++){num=max(num,dfs(i,j));}printf("%d\n",num+1); }return 0;}
0 0
- hdu-1078 FatMouse and Cheese (and) 滑雪问题(记忆化搜索+简单dp)
- hdu-1078 FatMouse and Cheese (and) 滑雪问题(记忆化搜索+简单dp)
- HDU 1078 FatMouse and Cheese 简单DP&记忆化搜索
- hdu(1078) FatMouse and Cheese (记忆化搜索+dp)
- !HDU 1078 FatMouse and Cheese-dp-(记忆化搜索)
- hdu 1078 FatMouse and Cheese(dp 记忆化搜索)
- HDU 1078 FatMouse and Cheese 记忆化搜索模板 dp
- [HDU 1078 ] FatMouse and Cheese [ dp 记忆化搜索 ]
- HDU FatMouse and Cheese (记忆化搜索+dp思想)
- 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 (dfs+记忆化搜索)
- hdu-1078 FatMouse and Cheese(记忆化搜索)
- FatMouse and Cheese (hdu 1078 记忆化搜索)
- HDU 1078 FatMouse and Cheese (记忆化搜索)
- hdu 1078 FatMouse and Cheese (记忆化搜索)
- Android 5.0 parseSdkContent failed Could not initialize class android.graphics.Typeface
- java多线程
- mvc理解
- 【leetcode】Permutations
- 我的求职之路2015
- hdu-1078 FatMouse and Cheese (and) 滑雪问题(记忆化搜索+简单dp)
- 如何动态地给vSphere虚拟机模板注入信息
- 并发性:互斥和同步、死锁和饥饿
- Google ProtocolBuffer(PB) 简介和实例2-Wire的使用
- FusionCharts中文消息提示
- 解决Matlab 2012b中无法选择Visual Studio 2012作为编译器的问题
- java io的架构
- 中小个人网站如何成功走出去
- 适配器模式之类的适配器模式与对象的适配器模式