zoj 1107 FatMouse and Cheese
来源:互联网 发布:淘宝店铺店标怎么弄的 编辑:程序博客网 时间:2024/05/29 09:31
/*zoj_1107 dp记忆化搜索的典例。注意点:1.bfs是会MLE的2.题意中的最多k步是只垂直或者只水平的。*/#include <iostream>#include <cstdio>#include <limits.h>#include <string.h>#include <queue>using namespace std;int v[110][110],dp[110][110];int ope[4][2]={ 0,1,0,-1,1,0,-1,0 };int n,k;int sear( int x,int y ){ int i,j,t,xx,yy,maxi; if( dp[x][y]!=-1 ) return dp[x][y]; dp[x][y]=v[x][y]; maxi=-1; for( i=1;i<=k;i++ ) for( j=0;j<4;j++ ) { xx=x+i*ope[j][0]; yy=y+i*ope[j][1]; if( xx>=0 && xx<n && yy>=0 && yy<n && v[xx][yy]>v[x][y] ) if( maxi<( t=bfs(xx,yy)+v[x][y] ) ) maxi=t; } if( maxi!=-1 ) dp[x][y]=maxi; return dp[x][y];}int main(){ int i,j; while( scanf( "%d%d",&n,&k ) && !( n==-1 && k==-1 ) ) { for( i=0;i<n;i++ ) for( j=0;j<n;j++ ) { scanf( "%d",&v[i][j] ); dp[i][j]=-1; } printf( "%d\n",sear( 0,0 ) ); } return 0;}