【codevs1220】数字三角形
problem
solution
codes
//f[i][j]:从(i,j)出发能获得的最大值 _裸DFS
#include<iostream>
#include<algorithm>
using namespace std;
int n, a[110][110], f[110][110];
int dfs(int i, int j){if(f[i][j])return f[i][j];if(i>n || j>n)return 0;return f[i][j] = max(dfs(i+1,j),dfs(i+1,j+1))+a[i][j];
}
int main(){cin>>n;for(int i = 1; i <= n; i++)for(int j = 1; j <= i; j++)cin>>a[i][j];cout<<dfs(1,1)<<"\n";return 0;
}
//f[i][j]:从(i,j)出发能获得的最大值 _裸递推
#include<iostream>
#include<algorithm>
using namespace std;
int n, a[110][110], f[110][110];
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 = n; i >= 1; i--)for(int j = 1; j <= i; j++)f[i][j] = max(f[i+1][j], f[i+1][j+1])+a[i][j];cout<<f[1][1]<<"\n";return 0;
}
//f[i][j]:从(1,1)到(i,j)能获得的最大值 _裸递推
#include<iostream>
#include<algorithm>
using namespace std;
int n, a[110][110], f[110][110];
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++)for(int j = 1; j <= i; j++)f[i][j] = max(f[i-1][j], f[i-1][j-1])+a[i][j];int ans = -0xffffff;for(int i = 1; i <= n; i++)ans = max(ans, f[n][i]);cout<<ans<<'\n';return 0;
}
//f[i][j]:从(i,j)出发能获得的最大值 _滚动数组
#include<iostream>
#include<algorithm>
using namespace std;
int n, a[110][110], f[2][110];
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 = n; i >= 1; i--)for(int j = 1; j <= i; j++)f[i%2][j] = max(f[(i+1)%2][j], f[(i+1)%2][j+1])+a[i][j];cout<<f[1][1]<<"\n";return 0;
}
//f[i][j]:从(1,1)到(i,j)能获得的最大值 _滚动数组2
#include<iostream>
#include<algorithm>
using namespace std;
int n, a, f[2][110];
int main(){cin>>n;for(int i = 1; i <= n; i++){for(int j = 1; j <= i; j++){cin>>a;f[i%2][j] = max(f[(i-1)%2][j], f[(i-1)%2][j-1])+a;}}int ans = -0xffffff;for(int i = 1; i <= n; i++)ans = max(ans, f[n%2][i]);cout<<ans<<"\n";return 0;
}
【codevs1220】数字三角形相关推荐
- vijos 1006 晴天小猪历险记之Hill——数字三角形的终极变化
题目链接:https://vijos.org/p/1006 数字三角形原题看这里:http://www.cnblogs.com/huashanqingzhu/p/7326837.html 背景 在很久 ...
- codevs——1220 数字三角形(棋盘DP)
时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 如图所示的数字三角形,从顶部出发,在每一结点可以选择向左走或得向右走,一 ...
- 【动态规划专题】数字三角形模型
题目 算法 AcWing 1015. 摘花生 简单线性DP.数字三角形模型 AcWing 1018. 最低通行费 数字三角形模型 AcWing 1027. 方格取数 四维DP AcWing 275. ...
- 最长子序列和 动态规划python_算法基础之python实现动态规划中数字三角形和最长上升子序列问题...
数字三角形问题:python 问题描述:函数 问题分析:spa 程序代码:(递归法和动归法)code # -*- coding: utf-8 -*- """ Create ...
- [CODEVS] 2189 数字三角形W
数字三角形 要求走到最后mod 100最大 可达性DP(好像是这样叫) 用bool数组f[i][j][k]表示 位置(i,j)能否得到k(mod 100意义下) 转移条件 f[i][j][k]=f[i ...
- 数字三角形路径最小值c语言题目,算法学习——动态规划之点数值三角形的最小路径...
算法描述在一个n行的点数值三角形中,寻找从顶点开始每一步可沿着左斜或者右斜向下直到到达底端,使得每个点上的数值之和为最小 右图为一个4行的点数值三角形 算法思路接收用户输入行数n 使用一个二维数组a[ ...
- hihoCoder#1037 : 数字三角形(DP)
[题目链接]:click here~~ 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 问题描写叙述 小Hi和小Ho在经历了螃蟹先生的任务之后被奖励了一次出国旅游的机会,于是他 ...
- 蓝桥杯-数字三角形 (java)
算法训练 数字三角形 时间限制:1.0s 内存限制:256.0MB问题描述(图3.1-1)示出了一个数字三角形. 请编一个程序计算从顶至底的某处的一条路径,使该路径所经过的数字的总和最大.●每一步可沿 ...
- 蓝桥杯 算法训练 数字三角形(最简单的DP)
传送门 题目描述 如下图示出了一个数字三角形. 请编一个程序计算从顶至底的某处的一条路径,使该路径所经过的数字的总和最大. ●每一步可沿左斜线向下或右斜线向下走: ●1<三角形行数≤100: ● ...
- 数字三角形,最长上升子序列,背包模型 AcWing算法提高课 (详解)
目录 数字三角形模型(只能向右和向下或向左和向上) AcWing 1015. 摘花生 AcWing 1018. 最低通行费(曼哈顿距离-向右和向下-求最小值-初始化) AcWing 1027. 方格取 ...
最新文章
- express中放置静态文件
- XAPIAN简单介绍(三)
- iOS开篇——UI之UITextField
- 通过串口来控制网管型交换机的操作步骤详解
- 一名3年工作经验的程序员应该具备的技能
- F5 虚拟机下载 和 试用Key 申请
- SAP License:标准层次无法创建
- 如何解决loss NAN的问题
- linux查看系统启动时间
- 复习webpack4之PWA打包配置
- 随机数和随机数种子——学不会找我
- MathCAD14破解版
- mro python_Python的mro
- cogs 双服务点设置
- XCODE性能测试方法
- C# Windows Service与Timer(计时器)
- 六、阻塞队列与源码分析(上)
- 服务器虚拟机uefi,为虚拟机启用或禁用 UEFI 安全引导
- R语言主成分回归(PCR)、 多元线性回归特征降维分析光谱数据和汽车油耗、性能数据...
- Verilog流水线CPU设计(超详细)