HDU 1078
来源:互联网 发布:淘宝修改标题必须下架 编辑:程序博客网 时间:2024/06/16 00:00
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int maxn=1000;int n,k;int a[maxn][maxn],dp[maxn][maxn];int step[4][2]={1,0,-1,0,0,1,0,-1};int dfs(int x,int y){ int i,j,ans=0;//ans是每一个i,j位置上的记录状态以及从i,j出发能得到的最大搜索值。 if(!dp[x][y]) { for(i=1;i<=k;i++) { for(j=0;j<4;j++) { int xx=x+step[j][0]*i; int yy=y+step[j][1]*i; if(xx<1||yy<1||xx>n||yy>n) continue; if(a[xx][yy]>a[x][y]) { ans=max(ans,dfs(xx,yy)); } } } dp[x][y]=ans+a[x][y]; } return dp[x][y];}int main(){ while(scanf("%d%d",&n,&k)!=EOF) { if(n==-1&&k==-1) break; for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) scanf("%d",&a[i][j]); } memset(dp,0,sizeof(dp)); printf("%d\n",dfs(1,1)); } return 0;}
这是第一次接触到记忆化搜索,也从网上找来了一些资料来看,发现这个博客写的还是不错的,归纳了记忆化搜索的特点和其他的一些特性,还是比较有帮助的。
http://blog.csdn.net/urecvbnkuhbh_54245df/article/details/5847876
对于上面的这个问题,一开始不知道怎么做啊,所以也只能看解题报告了。
0 0
- hdu 1078
- HDU 1078
- hdu 1078
- HDU-1078
- Hdu 1078
- hdu 1078
- HDU 1078
- HDU 1078
- hdu 1078+hdu1978+hdu 1428
- joj 1078 hdu 1116
- hdu 1078 动态规划
- hdu 1078 搜索
- hdu 1078(dfs+dp)
- HDU 1078 深搜+DP
- HDU 1078(贪心)
- hdu 1078 FatMouse Chees
- HDU 1078(搜索)
- hdu
- Linux下 进度条
- Tomcat学习笔记 catalina.bat & setclasspath.bat
- LeetCode Rotate Array
- 自己写的双色球系统,有兴趣的试试
- ACM刷题之HDU————Fibonacci
- HDU 1078
- 欢迎使用CSDN-markdown编辑器
- nefu500(二分+最大流)
- oracle执行过程,但是没有结果生成,表空间不足问题
- 【Leetcode】:226. Invert Binary Tree 问题 in JAVA
- mysql基础
- Tomcat学习笔记 虚拟目录及虚拟子目录篇
- 来一道水题 KMP算法---HDU2087
- HDOJ--2000--ASCII码排序(java实现)