动态规划_数字三角形
2015-08-19 10:00
274 查看
问题描述:在下面的数字三角形中寻找一条从顶部到底边的路径,使得路径上所经过的数字之和最大,路径上的每一步都只能往左下或右下走。只需要求出这个最大和即可,不必给出具体路径。
输入数据的要求:三角形的行数大于1小于等于100,数字为0——99.
输入格式:
5 //三角形的行数,下面是三角形
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
#include <iostream>
using namespace std;
const int N = 101;
int a
, n;
int main()
{
cin >> n;
for (int i = 0; i<n; i++)
{
for (int j = 0; j<=i; j++)
{
cin >> a[i][j];
}
}
for (int i = n-2; i>=0; i--)
{
for (int j = 0; j<=i; j++)
{
int x = a[i+1][j];
if (x < a[i+1][j+1])
x = a[i+1][j+1];
a[i][j] = a[i][j] + x;
}
}
cout << a[0][0]<< endl;
return 0;
}
输入数据的要求:三角形的行数大于1小于等于100,数字为0——99.
输入格式:
5 //三角形的行数,下面是三角形
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
#include <iostream>
using namespace std;
const int N = 101;
int a
, n;
int main()
{
cin >> n;
for (int i = 0; i<n; i++)
{
for (int j = 0; j<=i; j++)
{
cin >> a[i][j];
}
}
for (int i = n-2; i>=0; i--)
{
for (int j = 0; j<=i; j++)
{
int x = a[i+1][j];
if (x < a[i+1][j+1])
x = a[i+1][j+1];
a[i][j] = a[i][j] + x;
}
}
cout << a[0][0]<< endl;
return 0;
}
相关文章推荐
- WPF调用线程 解决“调用线程无法访问此对象,因为另一个线程拥有该对象“问题
- (C/C++学习笔记)函数模板遇上函数重载
- 如何配置无线路由为交换机模式
- 搭建部署zabbix
- Maven入门
- cvpr2015的face Alignment 文章笔记
- 《Java设计模式》之原型模式
- 动态规划_数字三角形
- Android 动态设置控件宽高度
- 集训第六周 E题
- 【LeetCode】171. Excel Sheet Column Number
- hdu3065 AC自动机
- 取上个月的月初和月末
- 零碎知识整理
- Linux 进程调度浅析
- CSS 相对/绝对(relative/absolute)定位与jQuery的控制显示隐藏
- MySQL索引的查看创建和删除
- 【JS/网易公开课】哈佛大学公开课:构建动态网站 第6讲 JavaScript
- ctype.h
- POI生成Excel强制换行