当前位置: 首页 > news >正文

【动态规划基础】数字三角形(IOI1994)

题目描述

数字三角形
在这里插入图片描述

输入输出样例

输入样例#1:

5
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5

输出样例#1:

30

思路:

这题可能看到的第一眼——直接贪心然后一层一层判断呀!!!不过很快又会发现,额___好像不行。因为可能当前选的是一个大的,但是后面全都是小的!!!
所以这时我们就需要用到动态规划
动态规划基础知识详见: 动态规划基础(超详细)

这题我们从上到下行不通,那我们就要思考从下到上进行操作

首先需要知道状态转移方程:
从图中可知当前这这个可以由左下角的数右下角的数的最大值加上自己本来的数
所以状态转移方程为:

dp[i][j]=max(dp[i+1][j],dp[i+1][j+1])+a[i][j];

然后我们需要知道DP的初值,那这题很明显,就是输入的最后一行,也就是:

for(int i=1;i<=n;i++) dp[n][i]=a[n][i];

AC代码

最后呈上完整代码:

#include<bits/stdc++.h>
using namespace std;
int n,a[101][101],dp[101][101];
int main(){cin>>n;for(int i=1;i<=n;i++)for(int j=1;j<=i;j++) cin>>a[i][j];for(int i=1;i<=n;i++) dp[n][i]=a[n][i];for(int i=n-1;i>=1;i--){for(int j=1;j<=i;j++){dp[i][j]=max(dp[i+1][j],dp[i+1][j+1])+a[i][j];}}cout<<dp[1][1];return 0;
}
http://www.lryc.cn/news/123255.html

相关文章:

  • yolo源码注释2——数据集配置文件
  • Java实现根据姓名生成头像(钉钉样式)
  • 微信小程序备案流程
  • JavaScript版本ES5/ES6及后续版本
  • 解决Idea 多模块,maven项目是多层级文件夹的子项时无法加入git管理的问题
  • yolo源码注释4——yolo-py
  • 计算机网络中速率和带宽的区别
  • MySQL数据库练习
  • Redis BitMap/HyperLogLog/GEO/布隆过滤器案例
  • POI处理excel,根据XLOOKUP发现部分公式格式不支持问题
  • 第一次PR经历
  • 背上小书包准备面试之TypeScript篇
  • 【Spring】浅谈spring为什么推荐使用构造器注入
  • 在阿里云Linux服务器上部署MySQL数据库流程
  • 实战——OPenPose讲解及代码实现
  • 专注于创意设计,为您的小程序和网站建设带来更多的可能性
  • ATF(TF-A)安全通告 TFV-6 (CVE-2017-5753, CVE-2017-5715, CVE-2017-5754)
  • vue3 基础语法 02
  • 版本控制工具——git
  • 超详细,自动化测试实战-获取配置文件信息(实例源码)
  • spring 2.7.14 cors 设置 allowedOrigins(“*“)通配符 失效怎么解决
  • 一、Go的前景与优势、基础语法
  • shell脚本循环语句
  • 二叉树题目:二叉树的直径
  • 嵌入式:C高级 Day4
  • cmake常用命令(1)——函数相关
  • 阿里三年功能测试的一些感悟
  • React源码解析18(4)------ completeWork的工作流程【mount】
  • Kafka: 详解、使用教程和示例
  • 【LeetCode周赛】LeetCode第358场周赛