简单dp算法——Cow Bowling
2016-07-24 15:18
609 查看
A -
Cow Bowling
点击打开链接http://acm.hust.edu.cn/vjudge/contest/123760#problem/A
Crawling in process...
Crawling failed
Time Limit:1000MS
Memory Limit:65536KB
64bit IO Format:%lld & %llu
Submit
Status
Description
Input
Output
Sample Input
Sample Output
Hint
Description
The cows don't use actual bowling balls when they go bowling. They each take a number (in the range 0..99), though, and line up in a standard bowling-pin-like triangle like this:
Then the other cows traverse the triangle starting from its tip and moving "down" to one of the two diagonally adjacent cows until the "bottom" row is reached. The cow's score is the sum of the numbers of the cows visited along
the way. The cow with the highest score wins that frame.
Given a triangle with N (1 <= N <= 350) rows, determine the highest possible sum achievable.
Input
Line 1: A single integer, N
Lines 2..N+1: Line i+1 contains i space-separated integers that represent row i of the triangle.
Output
Line 1: The largest sum achievable using the traversal rules
Sample Input
Sample Output
Hint
Explanation of the sample:
The highest score is achievable by traversing the cows as shown above.
解题思路:
从倒数第二行开始,m[n-1][j] += max( m
[j],m
[j+1] ),依次往上选出最大的数,最后剩下m[1][1],也就是最大的那个数。
代码实现:
Cow Bowling
点击打开链接http://acm.hust.edu.cn/vjudge/contest/123760#problem/A
Crawling in process...
Crawling failed
Time Limit:1000MS
Memory Limit:65536KB
64bit IO Format:%lld & %llu
Submit
Status
Description
Input
Output
Sample Input
Sample Output
Hint
Description
The cows don't use actual bowling balls when they go bowling. They each take a number (in the range 0..99), though, and line up in a standard bowling-pin-like triangle like this:
7 3 8 8 1 0 2 7 4 4 4 5 2 6 5
Then the other cows traverse the triangle starting from its tip and moving "down" to one of the two diagonally adjacent cows until the "bottom" row is reached. The cow's score is the sum of the numbers of the cows visited along
the way. The cow with the highest score wins that frame.
Given a triangle with N (1 <= N <= 350) rows, determine the highest possible sum achievable.
Input
Line 1: A single integer, N
Lines 2..N+1: Line i+1 contains i space-separated integers that represent row i of the triangle.
Output
Line 1: The largest sum achievable using the traversal rules
Sample Input
5 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5
Sample Output
30
Hint
Explanation of the sample:
7 * 3 8 * 8 1 0 * 2 7 4 4 * 4 5 2 6 5
The highest score is achievable by traversing the cows as shown above.
解题思路:
从倒数第二行开始,m[n-1][j] += max( m
[j],m
[j+1] ),依次往上选出最大的数,最后剩下m[1][1],也就是最大的那个数。
代码实现:
#include <iostream> #include <cstdio> #include <queue> #include <vector> #include <map> #include <cmath> #include <algorithm> using namespace std; int main() { int n; cin >> n; long long m[400][400] = { 0 }; int i, j; for( i=1; i<=n; i++ ) { for( j=1; j<=i; j++ ) { cin >> m[i][j]; } } for( i=n-1; i>0; i-- ) { for( j=1; j<=i; j++) { m[i][j] += max( m[i+1][j], m[i+1][j+1] ); } } cout << m[1][1] <<endl; return 0; }
相关文章推荐
- java.lang.StackOverflowError: stack size 8MB
- <蛇形填数>--算法竞赛 入门经典(第2版)- 3.1 数组 程序3-3 蛇形填数
- 优秀wordpress模板必备的五大条件
- UML反向工程方法
- 一些关于HTML与CSS的总结与实际应用
- CSS——背景属性
- 深入理解javascript作用域系列第三篇——声明提升(hoisting)
- sql学习
- Mesos源码分析(4) Mesos Master的启动之三
- 浅析java一些修饰符
- LeetCode 36. Valid Sudoku
- C语言总复习第一阶段部分练习题及其代码
- 常用排序算法之堆排序
- 时间换算(java)
- 使用Axis发布Web Service
- 常用排序算法之选择排序
- 多线程及线程并发库
- PAT(B) - 1004. 成绩排名 (20)
- CodeForces 427C Checkposts (强连通分量Tarjan模板题)
- UML之部署图and构件图