ACM学习-POJ-1163-The Triangle
来源:互联网 发布:pip linux 编辑:程序博客网 时间:2024/05/17 03:36
菜鸟学习ACM,纪录自己成长过程中的点滴。
学习的路上,与君共勉。
ACM学习-POJ-1163-The Triangle
The Triangle
Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 34125 Accepted: 20303
Description
73 88 1 02 7 4 44 5 2 6 5(Figure 1)
Input
Your program is to read from standard input. The first line contains one integer N: the number of rows in the triangle. The following N lines describe the data of the triangle. The number of rows in the triangle is > 1 but <= 100. The numbers in the triangle, all integers, are between 0 and 99.
Output
Your program is to write to standard output. The highest sum is written as an integer.
Sample Input
573 88 1 0 2 7 4 44 5 2 6 5
Sample Output
30
Source
IOI 1994
题目要求:
输入一个n层的三角形,第i层有i个数,求从第1层到第n层的所有路线中,权值之和最大的路线。
规定:第i层的某个数只能连线走到第i+1层中与它位置相邻的两个数中的一个。
题目分析:
典型的动态规划。
因此我们可以从下往上推,相邻的两个数中找较大的与上层相加,得出的结果相邻的两个数中再找较大的与上层相加,以此类推。用二维数组arr_[][]记录从下到该点的最大值。
核心代码
arr_[i][j] += arr_[i+1][j] > arr_[i+1][j+1] ? arr_[i+1][j] : arr_[i+1][j+1];
最后的结果就是arr_[0][0]。
下面给出AC代码。
#include <stdio.h>#define MAXSIZE 105int main(){ int n; int i, j; int arr_[MAXSIZE][MAXSIZE]; while (~scanf("%d", &n)) { for (i=0; i<n; i++) { for (j=0; j<=i; j++) { scanf("%d", &arr_[i][j]); } } for (i=n-2; i>=0; i--) { for (j=0; j<=i; j++) { arr_[i][j] += arr_[i+1][j] > arr_[i+1][j+1] ? arr_[i+1][j] : arr_[i+1][j+1]; } } printf("%d", arr_[0][0]); } return 0;}
- ACM学习-POJ-1163-The Triangle
- ACM POJ 1163 The Triangle DP
- The Triangle--poj--1163
- POJ 1163 The Triangle
- poj 1163 The Triangle
- Poj 1163 The Triangle
- poj 1163 The Triangle
- poj 1163 The Triangle
- poj 1163 The Triangle
- POJ 1163 The Triangle
- poj 1163 The Triangle
- POJ 1163 The Triangle
- POJ 1163 The Triangle
- poj 1163 The Triangle
- poj-1163 The Triangle
- poj 1163 The Triangle
- POJ-1163-The Triangle
- poj 1163 The Triangle
- 戴尔私有化交易获监管机构批准 11月1日前完成
- URAL 1141 计算模n的e次根
- 查询别人微信聊天记录,操作只需30分钟快速完成
- 将小写字母转化成大写字母
- 三位大股东推动盖茨辞去微软董事长职位
- ACM学习-POJ-1163-The Triangle
- JDBC小小实例教程
- 百度2014校招笔试题目题解(更新了第1题的算法,10.9下午)
- linux_C一站学习--课后习题(一)简单函数;分支语句;深入理解函数
- IT也疯狂:十一长假特别篇
- TortoiseGit GitHub 使用小计
- vb.net 中的AndAlso
- 堆排序
- 根据前序跟中序遍历的结果建立二叉树——迭代和递归的方法