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;}

原创粉丝点击