博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj3176
阅读量:6038 次
发布时间:2019-06-20

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

一、题意:给定一些数,成三角形排列。从上往下走,每个数只能往它相邻的两个数走,一直走到底端得到一条线路。这条线路上的数的和最大是多少

二、思路:简单的动态规划。dp[i+1][j+1]:=以第i+1行j+1列为最后一个数字所能得到的最大和。所有的初始值均设为0,那么从上往下递推,可得到以每一个数为结尾的最大和,这样只要比较最后一行所能得到的最大和是多少即可。递推式为:dp[i+1][j+1]=max(dp[i][j],dp[i][j+1])+tri[i][j];

三、代码:

#include"iostream"#include"stdio.h"#include"string.h"using namespace std;const int MAXN=355;int dp[MAXN][MAXN];int tri[MAXN][MAXN];int GetMaxSum(int n){    memset(dp,0,sizeof(dp));    for(int i=0;i
res) res=dp[n][j+1]; } return res;}int main(){ int n; while(scanf("%d",&n)==1) { for(int i=0;i
View Code

 

转载于:https://www.cnblogs.com/acm-jing/p/10311660.html

你可能感兴趣的文章
Sublime 中运行 Shell 、Python、Lua、Groovy...等各种脚本
查看>>
【Java集合源码剖析】ArrayList源码剖析
查看>>
linux的目录结构
查看>>
这次逻辑通了,
查看>>
HTMLHelper
查看>>
快速构建Windows 8风格应用29-捕获图片与视频
查看>>
OC语言Block和协议
查看>>
使用xpath时出现noDefClass的错误(找不到某个类)
查看>>
.Net规则引擎介绍 - REngine
查看>>
CSS3 transforms 3D翻开
查看>>
利用传入的Type类型来调用范型方法的解决方案
查看>>
Top命令内存占用剖析
查看>>
转 网络IO模型:同步IO和异步IO,阻塞IO和非阻塞IO
查看>>
求带分数(蓝桥杯)
查看>>
Bootstrap系列 -- 11. 基础表单
查看>>
Retrofit 入门学习
查看>>
Spring Boot学习笔记
查看>>
python3存入redis是bytes
查看>>
laravel 集合接口
查看>>
C/C++二进制读写png文件
查看>>