POJ 1088滑雪(纯DP的方法)
来源:互联网 发布:js让金额不为0 编辑:程序博客网 时间:2024/05/17 01:21
刚才写过了dfs的方法
现在回顾一下dp算法
dp的算法看起来比dfs 好理解的多 当然dfs设计复杂的递归本来就不是一种好理解的算法。
我们首先用struct data 存储节点
这个节点是由坐标和 height值组成的。
data arr【maxn】;
具体步骤就是输入 赋值arr数组
然后从小到大排序
我们的思想是从height最小的那个点开始
探查它的上下左右四个点 一旦发现比它大的 并且dp值可以更新的就更新
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int maxn=10005;struct Data{int x,y,h;};Data arr[maxn];int height[105][105];int dp[105][105];bool Cmp(const Data & a,const Data & b){ return a.h<b.h;}int i,j,k,c,r;int main(){ scanf("%d%d",&c,&r); int index=0; for(i=1;i<=c;++i) { for(j=1;j<=r;++j) { arr[index].x=i; arr[index].y=j; scanf("%d",&arr[index].h); height[i][j]=arr[index].h; dp[i][j]=1; index++; } } sort(arr,arr+c*r,Cmp); for(i=0;i<c*r;++i) { if(height[arr[i].x+1][arr[i].y]>arr[i].h) { if(dp[arr[i].x+1][arr[i].y]<dp[arr[i].x][arr[i].y]+1) dp[arr[i].x+1][arr[i].y]=dp[arr[i].x][arr[i].y]+1; } if(height[arr[i].x-1][arr[i].y]>arr[i].h) { if(dp[arr[i].x-1][arr[i].y]<dp[arr[i].x][arr[i].y]+1) dp[arr[i].x-1][arr[i].y]=dp[arr[i].x][arr[i].y]+1; } if(height[arr[i].x][arr[i].y+1]>arr[i].h) { if(dp[arr[i].x][arr[i].y+1]<dp[arr[i].x][arr[i].y]+1) dp[arr[i].x][arr[i].y+1]=dp[arr[i].x][arr[i].y]+1; } if(height[arr[i].x][arr[i].y-1]>arr[i].h) { if(dp[arr[i].x][arr[i].y-1]<dp[arr[i].x][arr[i].y]+1) dp[arr[i].x][arr[i].y-1]=dp[arr[i].x][arr[i].y]+1; } } int max=1; for(i=1;i<=c;++i) { for(j=1;j<=r;++j) { if(dp[i][j]>max) max=dp[i][j]; } } printf("%d\n",max); return 0;}
- POJ 1088滑雪(纯DP的方法)
- POJ 1088 滑雪(DP)
- POJ 1088 滑雪(dp)
- poj - 1088 - 滑雪(dp)
- POJ 1088 滑雪 (dp)
- POJ 1088 滑雪(DP)
- POJ 1088 滑雪(dp)
- POJ 1088 滑雪 (DP)
- POJ 1088 滑雪(dp)
- POJ 1088滑雪(dfs的方法)
- poj 1088 滑雪(DP)
- POJ 1088 滑雪 DP
- poj 1088 滑雪 (DP)
- poj 1088 滑雪 DP
- POJ 1088 滑雪 DP
- POJ 1088-滑雪(dp)
- poj 1088 滑雪DP
- POJ 1088 滑雪 DP
- 如何设置server 2003 的半连接数防止syn flood攻击
- poj 1338 Ugly Number(DP)
- Codeforces Round #163 (Div. 2) (完全)
- Android自定义Button按钮显示样式
- Ivy配置
- POJ 1088滑雪(纯DP的方法)
- poj 1015 Jury Compromise(神一般的DP)
- 一点疑惑关于object-c,c,c++
- Hibernate 使用原生SQL
- Java 代码简化系列 (一)
- 对于Drupal来说,使用Omega 还是Zen?
- wr703n openwrt pppoe 配置
- Android蓝牙开发浅谈
- 详解WINCE的控制面板