码迷,mamicode.com
首页 > 其他好文 > 详细

洛谷 P1216 [USACO1.5]数字三角形 Number Triangles

时间:2017-10-07 14:55:05      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:缺点   tle   金字塔   描述   最大的   路径   输入   code   区别   

 

题目描述

观察下面的数字金字塔。

写一个程序来查找从最高点到底部任意处结束的路径,使路径经过数字的和最大。每一步可以走到左下方的点也可以到达右下方的点。

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

在上面的样例中,从7 到 3 到 8 到 7 到 5 的路径产生了最大

输入输出格式

输入格式:

 

第一个行包含 R(1<= R<=1000) ,表示行的数目。

后面每行为这个数字金字塔特定行包含的整数。

所有的被供应的整数是非负的且不大于100。

 

输出格式:

 

单独的一行,包含那个可能得到的最大的和。

 

输入输出样例

输入样例#1:
5
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5 
输出样例#1:
30

说明

题目翻译来自NOCOW。

USACO Training Section 1.5

由于此题并不是特别难,所以就不发代码了,,,但是思路是肯定会讲清楚的。

蒟蒻一来看到这题,大叫:“哇,这题真简单!贪心就行啦!”

但是贪心法的缺点在此题中一览无余的展现了出来:目光短浅。

如果按照贪心法思路,则:7-8-1-7-5,其和为28;

但是!!!

存在着另外一条路:7-3-8-7-5,其和为30。

所以贪心法就OUT了。。。

然后蒟蒻又想:贪心法不行,那穷举总行了吧!

结果这次蒟蒻又想错了……

在本题中,R<=1000,要是用穷举法只有一种结果:TLE。

所以!!!

本题唯一的方法就是:动态规划!!!

此题需用递推。

递推共有两种方法可以选择:顺推法和逆推法,两种方法皆可。

实际上可以这样理解两种方法的区别:顺推法是从顶层推到底层,而逆推法则是从底层推到顶层的。

讲到这里,想必整道题的思路已经给大家理清楚了,大家就自己写程序吧!

洛谷 P1216 [USACO1.5]数字三角形 Number Triangles

标签:缺点   tle   金字塔   描述   最大的   路径   输入   code   区别   

原文地址:http://www.cnblogs.com/Xray-luogu/p/7634434.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!