博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj1088 滑雪问题 dfs写法
阅读量:4697 次
发布时间:2019-06-09

本文共 1061 字,大约阅读时间需要 3 分钟。

这题刚开始我想到的是搜索,但是超时了,所以要进行优化,听说这是dp经典题,当时就疯了,dp才初学,想到的是

dp[i,j]=max(dp[四个方向]);

lyon大神说不用递归,排序就好,不懂啊,我可耻的递归了,等等再学习学习!

我晕啊,发现我这个原来是用了dfs,我自以为是dp!虽然如此,

但写出来不太理想,主要是不懂的递归间数值的变化,导致一直出不来答案!

后来看题解啊,改啊,搞啊,许久才出来个能a的代码,并且还0ms了,看来还得多熟悉下 

View Code
1 #include
2 #include
3 #include
4 #include
5 #define INF 0x3f3f3f3f 6 #define Maxin 10000 7 int f[4][2]={
{-1,0},{
0,-1},{
1,0},{
0,1}}; 8 int map[110][110]; 9 int v[110][110]; 10 int r,c,x,y;11 int dfs(int i,int j)12 {13 if(v[i][j]!=1)14 return v[i][j];//加了这个才没超时,为了防止重复计算的15 for(int z=0;z<4;z++)16 {17 int a=i+f[z][0];18 int b=j+f[z][1];19 if(a>=0&&a
=0&&b
map[i][j])//四方向探索,满足a b在图内,且高度满足条件21 {22 int k=dfs(a,b);//求出a b的最大长度23 if(v[i][j]
max)50 max=v[x][y];51 // printf("%d ",v[x][y]);52 }53 // printf("\n");54 }55 printf("%d\n",max);56 return 0;57 }

转载于:https://www.cnblogs.com/usp10/archive/2012/05/11/2495946.html

你可能感兴趣的文章
[NYIST15]括号匹配(二)(区间dp)
查看>>
json_value.cpp : fatal error C1083: 无法打开编译器生成的文件:No such file or directory
查看>>
洛谷 P1101 单词方阵
查看>>
Swift DispatchQueue
查看>>
C#和JAVA 访问修饰符
查看>>
小甲鱼OD学习第1讲
查看>>
HDU-1085 Holding Bin-Laden Captive-母函数
查看>>
php提示undefined index的几种解决方法
查看>>
LRJ
查看>>
Struts2环境搭建
查看>>
Linux: Check version info
查看>>
stl学习之测试stlen,cout等的运行速度
查看>>
魔戒三曲,黑暗散去;人皇加冕,光明归来
查看>>
Error和Exception
查看>>
Python和Singleton (单件)模式[转载]
查看>>
httpclient设置proxy与proxyselector
查看>>
IT常用单词
查看>>
拓扑排序
查看>>
NYOJ--32--SEARCH--组合数
查看>>
JMS
查看>>