动态规划:数塔问题 hdu 2084 dp
来源:互联网 发布:tensorflow 用什么语言 编辑:程序博客网 时间:2024/06/05 17:46
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2084
带备忘录的自顶向下:
#include<iostream>#include<cstring>using namespace std;int tower[101][101];int d[101][101];int solve(int i,int j,int n)//带备忘录自顶向下 {if(d[i][j])return d[i][j];int v1,v2;v1=v2=0;if(i<n&&j<n){v1=tower[i][j]+solve(i+1,j,n);v2=tower[i][j]+solve(i+1,j+1,n);d[i][j] = v1>v2?v1:v2;return d[i][j];}elsereturn 0;}int main(){int c,n;cin>>c;while(c--){cin>>n;memset(d,0,sizeof(d));for(int i=0;i<n;i++)for(int j=0;j<=i;j++){cin>>tower[i][j];}int ans = solve(0,0,n);cout<<ans<<endl;}}
递推:
#include<cstdio>#include<cstring>#define Max(a,b) a>b?a:busing namespace std;const int N = 102;int m[N][N],dp[N][N];int main(){int t,n;scanf("%d",&t);while(t--){scanf("%d",&n);for(int i=1;i<=n;i++)for(int j=1;j<=i;j++)scanf("%d",&m[i][j]);memset(dp,0,sizeof(dp));//for(int j=1;j<=n;j++)dp[n][j]=m[n][j];for(int i=n;i>=1;i--){for(int j=1;j<=i;j++){dp[i][j] = Max(dp[i+1][j]+m[i][j],dp[i+1][j+1]+m[i][j]);}}printf("%d\n",dp[1][1]);}}
注意处理边界问题
0 0
- 动态规划:数塔问题 hdu 2084 dp
- DP动态规划——hdu 2084 数塔
- HDU 2084 数塔(动态规划DP)
- HDU 2084(数塔)动态规划-数塔问题
- dp 数塔 经典动态规划问题
- hdu 2084 数塔问题(动态规划)
- hdu 2084 数塔(动态规划)
- HDU-2084(数塔)(动态规划)
- HDU 2084 数塔(动态规划)
- HDU 2084:数塔(动态规划)
- 数塔 【hdu-2084】【动态规划】
- hdu 2084 数塔 动态规划 简单
- DP 动态规划 Problem F 1006 数塔问题
- HDOJ_杭电2084_数塔问题,经典阶段DP动态规划问题
- HDU 2151(Worm)动态规划-数塔问题
- HDU 2571(命运)动态规划-数塔问题
- 动态规划----数塔问题
- 数塔问题----动态规划
- GitHub Trending 客户端,GitHub 最受欢迎的开源项目浏览器
- Debian系统配置PPTP方法 添加用户和iptables规则
- 继承与派生(二)
- 【PAT】1060. Are They Equal
- Redis高级特性及应用场景
- 动态规划:数塔问题 hdu 2084 dp
- Java经典算法(二)
- Happy New Year! 2017
- Linux密码输入回显星号
- SS6.1_Hibernate_Hibernate_IdStrategyAnnotation 主键生成策略native Annotation注解的配置方式
- 面试题7-1:快速排序
- java多线程(6)--多线程的安全问题总结
- 简单密码破解 (sdut oj)
- codeforces 766 C Mahmoud and a Message [基础DP]【动态规划】