寻找路径,动态规划法题解。

本题和Leetcode的triangle题目几乎相同一样的,本题要求的是找到最大路径和。

逆向思维。从底往上查找起就能够了。

由于从上往下能够扩展到非常多路径。而从下往上个点的路径是由两条缩减到一条。

这样就能够非常easy记录最大路径了。

#include <stdio.h>
const short MAX_ROW = 101;
short triangle[MAX_ROW][MAX_ROW];
short table[MAX_ROW];
short row;
inline short max(short a, short b) { return a > b ? a : b; } short getMaxSum()
{
for (short i = 0; i < row; i++) table[i] = triangle[row-1][i];
for (row-=2; row >= 0; row--)
{
for (short i = 0; i <= row; i++)
{
table[i] = triangle[row][i] + max(table[i], table[i+1]);
}
}
return table[0];
} int main()
{
while (~scanf("%d", &row))
{
for (short i = 0; i < row; i++)
{
for (short j = 0; j <= i; j++)
{
scanf("%d", &triangle[i][j]);
}
}
printf("%d\n", getMaxSum());
}
return 0;
}

POJ 1163 The Triangle DP题解的更多相关文章

  1. poj 1163 The Triangle(dp)

    The Triangle Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 43993   Accepted: 26553 De ...

  2. poj 1163 The Triangle &amp;poj 3176 Cow Bowling (dp)

    id=1163">链接:poj 1163 题意:输入一个n层的三角形.第i层有i个数,求从第1层到第n层的全部路线中.权值之和最大的路线. 规定:第i层的某个数仅仅能连线走到第i+1层 ...

  3. POJ 1163 The Triangle(简单动态规划)

    http://poj.org/problem?id=1163 The Triangle Time Limit: 1000MS   Memory Limit: 10000K Total Submissi ...

  4. POJ 1163 The Triangle【dp+杨辉三角加强版(递归)】

    The Triangle Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 49955   Accepted: 30177 De ...

  5. POJ 1163 The Triangle 简单DP

    看题传送门门:http://poj.org/problem?id=1163 困死了....QAQ 普通做法,从下往上,可得状态转移方程为: dp[i][j]= a[i][j] + max (dp[i+ ...

  6. 递推DP POJ 1163 The Triangle

    题目传送门 题意:找一条从顶部到底部的一条路径,往左下或右下走,使得经过的数字和最大. 分析:递推的经典题目,自底向上递推.当状态保存在a[n][j]时可省去dp数组,空间可优化. 代码1: /*** ...

  7. OpenJudge/Poj 1163 The Triangle

    1.链接地址: http://bailian.openjudge.cn/practice/1163 http://poj.org/problem?id=1163 2.题目: 总时间限制: 1000ms ...

  8. poj 1163 The Triangle 记忆化搜索

    The Triangle Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 44998   Accepted: 27175 De ...

  9. POJ - 1163 The Triangle 【动态规划】

    一.题目 The Triangle 二.分析 动态规划入门题. 状态转移方程$$DP[i][j] = A[i][j] + max(DP[i-1][j], DP[i][j])$$ 三.AC代码 1 #i ...

随机推荐

  1. Turtelizer 2 provide JTAG Flash programming and debugging of ARM based boards via USB

    http://www.ethernut.de/en/hardware/turtelizer/ Introducing Turtelizer 2 Overview Turtelizer 2 had be ...

  2. 转:如何解决“My mac 64-bit”问题

    童鞋们都知道Xcode会根据当前SDK在Run按钮旁边的选项栏中显示适合的Simulator供开发者选择,如下图: 但是有时候则错误显示“My mac 64-bit” ,这个明显不是我们想要的,如下图 ...

  3. Eclipse设置打印线

    在调出Preferences之后,选中Text Editors.先选中Show print margin,在Print margin column框中填入180就可以,然后选择以下的Print mar ...

  4. 【BZOJ】【4066】简单题(强制在线)

    KD-Tree KD-Tree的进阶姿势戳这里 http://zyfzyf.is-programmer.com/posts/92431.html 为啥有种线段树&平衡树的即视感……(树形结构的 ...

  5. @ArrayList剖析

    第1部分 ArrayList介绍 ArrayList简介 Resizable-array implementation of the List interface. Implements all op ...

  6. MySQL语法大全

    select * from emp; #注释 #--------------------------- #----命令行连接MySql--------- #启动mysql服务器 net start m ...

  7. 红黑树,TreeMap,插入操作

    红黑树 红黑树顾名思义就是节点是红色或者黑色的平衡二叉树,它通过颜色的约束来维持着二叉树的平衡.对于一棵有效的红黑树二叉树而言我们必须增加如下规则: 1.每个节点都只能是红色或者黑色 2.根节点是黑色 ...

  8. Spark性能优化(2)——广播变量、本地缓存目录、RDD操作、数据倾斜

    广播变量 背景 一般Task大小超过10K时(Spark官方建议是20K),需要考虑使用广播变量进行优化.大表小表Join,小表使用广播的方式,减少Join操作. 参考:Spark广播变量与累加器 L ...

  9. NTP Server

    Network Time Protocol互联网时间协议 NTP is intended to synchronize all participating computers to within a ...

  10. Android menu+ anctionbar

    一.概述 Menu,简单来理解就是当你按下手机的"menu"键时所弹出来的窗体,它被广泛应用着,差点儿在每一个应用中都有它的身影. 二.要求 用两种方式实现菜单功能. 三.实现 新 ...