poj 1088 dp记忆化搜索状态( or dfs)


这道滑雪的题当时陈月航他们来讲过的,但是忘完了,就只记得这道题是dp+记忆化搜索


这道题我先用dp递归的方式搜出来结果,感觉有点像搜索的样子,但是提交上去直接超时


然后我就想到了貌似要用记忆化搜索,坑了很多次,中间忽略了两个地方(在代码中指出)


其实这道dp和迷宫搜索很像,都是搜4个方向

这道题的重点就是每搜索玩一个位置要这个位置搜出的状态,下次搜到这个位置就可以直接用这个状态了(dp  的感觉)

 

坑爹的地方就在于可能同时  到两个地方所以不能直接 赋值,要进行一次比较。。代码中 指出

代码如上。。。36ms


Total Submissions: 71463   Accepted: 26394
#include
int n,m,num[101][101],ans=1,d[101][101]={0},temp=1;
void dp(int i,int j,int x)
{
    if(i>=0&&i=0&&j=0)
        if(num[i-1][j]=0)
        if(num[i][j-1]x+d[i][j]-1?temp:x+d[i][j]-1;//这里没有考虑到当 dp 到  几个位置d[i][j]都有值的情况,一直wrong
        }
         temp=temp


你可能感兴趣的:(dp)