csuoj 1022: 菜鸟和大牛
http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1022
1022: 菜鸟和大牛
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 293 Solved: 145
[Submit][Status][Web Board]
Description
blue和AutoGerk是好朋友。他们的相同点是都喜欢研究算法,不同点是AutoGerk已是大牛而blue还是菜鸟。blue经常拿一些自以为很难的问题去问AutoGerk,想难倒他,但是每次AutoGerk都能轻而易举地做出来。就在上个礼拜的星期天下午,AutoGerk正在玩游戏,blue又拿着他的问题来了。AutoGerk一看,依然是如此简单。AutoGerk很想玩他的游戏,但是又不想冷落朋友。于是他介绍你,同样是大牛级的人物,给blue,来回答他的问题。
blue的问题如下:
一个由n行数字组成的三角形,第i行有2i-1个正整数(小于等于1000),如下:
3
7 1 4
2 4 3 6 2
8 5 2 9 3 6 2
要求你用笔从第1行画到第n(0 < n ≤ 100)行,从当前行往下画的时候只能在相邻的数字经过,也就是说,如果从一行的一个数往下画,只能选择其左下或者正下或者右下三个数中的一个(如果存在的话),把所有被画起来的数字相加,得到一个和,求能得到的最大的和的值是多少。
上例中能得到的最大的和为3 + 7 + 4 + 9 = 23.
Input
第一行,一个自然数T,表示总共给出的三角形数,对于每一个三角形,首先给出一个自然数n,表示将输入的三角形有n行。接下来有n行,第i行有2i-1个数字,
Output
对于每个三角形,输出一个数,即能得到的最大的和。
Sample Input
2
2
1
1 2 3
4
3
7 1 4
2 4 3 6 2
8 5 2 9 3 6 2
Sample Output
4
23
HINT
Source
分析;
简单dp
求从第1层走到第n层的最大和。 dp(i , j) 为走到第i行第j列获得的最大和。
dp[i][j] = max(dp[i + 1][j] , dp[i + 1][j + 1] , dp[i + 1][j + 2]) + a[i][j];
AC代码:
#include <iostream>
#include <cstring>
using namespace std;
const int maxn =;
int a[maxn][*maxn];
int dp[maxn][*maxn];
int max(int x,int y,int z)
{
return max(max(x,y),max(y,z));
}
int main()
{
int t;
cin.sync_with_stdio(false);
cin>>t;
while(t--)
{
int n;
cin>>n;
memset(a,,sizeof(a));
memset(dp,,sizeof(dp));
for(int i =;i<=n;i++)
{
for(int j = ;j<=*i-;j++)
{
cin>>a[i][j];
if(i==n)
{
dp[n][j]=a[i][j];
}
}
} for(int i = n-;i>=;i--)
{
for(int j =;j<=*i-;j++)
{
dp[i][j]=max(dp[i+][j],dp[i+][j+],dp[i+][j+])+a[i][j];
}
} cout<<dp[][]<<endl;
}
return ;
}
csuoj 1022: 菜鸟和大牛的更多相关文章
- CSU1022: 菜鸟和大牛
1022: 菜鸟和大牛 Submit Page Summary Time Limit: 1 Sec Memory Limit: 128 Mb Submitted: 1390 ...
- 菜鸟,大牛和教主三者的区别(转自hzwer)
菜鸟,大牛和教主,三者的区别 对菜鸟来说题目有三种:会算法且能AC的,会算法但不能AC的,不会做的 对大牛来说题目有两种:会做的,不会做的 对教主来说题目有两种:能AC的,数据有错的 菜鸟提交WA了, ...
- 这是一套Java菜鸟到大牛的学习路线之高级教程,由工作了10年的资深Java架构师整理。
这是一套Java菜鸟到大牛的学习路线之高级教程,由工作了10年的资深Java架构师整理. 01-java高级架构师设计-基础深入 J2SE深入讲解 Java多 ...
- Java菜鸟到大牛学习路线培训教程
第1阶段(Java程序员) - Java语言基础 - 101 JavaSE -01-常见Dos命令.Java历史.Java跨平台.配置Path环境变量.第一个HelloWorld例子 -02-配置JA ...
- 关于编写性能高效的javascript事件的技术
如何能做出高效的web前端程序是我每次做前端开发都会不自觉去考虑的问题.几年前雅虎里牛逼的前端工程师们出了一本关于提升web前端性能的书籍,轰动了整个web开发技术界,让神秘的web前端优化问题成为了 ...
- 【转】关于编写性能高效的javascript事件的技术
原文转自:http://blog.jobbole.com/80170/ 如何能做出高效的web前端程序是我每次做前端开发都会不自觉去考虑的问题.几年前雅虎里牛逼的前端工程师们出了一本关于提升web前端 ...
- 从小工到专家 ——读《Java程序员职场全攻略》有感
从小工到专家 ——读<Java程序员职场全攻略>有感 <Java程序员职场全攻略>是以故事的形式,向读者介绍Java程序员的职场经验.作者牛开复在北京从事软件开发,已经是一 ...
- ACM题集以及各种总结大全!
ACM题集以及各种总结大全! 虽然退役了,但是整理一下,供小弟小妹们以后切题方便一些,但由于近来考试太多,顾退役总结延迟一段时间再写!先写一下各种分类和题集,欢迎各位大牛路过指正. 一.ACM入门 关 ...
- 走向DBA[MSSQL篇] 积跬步行千里
原文:走向DBA[MSSQL篇] 积跬步行千里 不知道大家对SQL系列的感不感兴趣 先在这里探个路 本文针对的读者为SQL菜鸟 欢迎大牛驳论或者补充 既然是探路篇 就先说下数据过滤中的偏门匹配 希望能 ...
随机推荐
- 数据库CRUD操作:C:create创建(添加)、R:read读取、U:update:修改、D:delete删除;高级查询
1.注释语法:--,#2.后缀是.sql的文件是数据库查询文件3.保存查询4.在数据库里面 列有个名字叫字段 行有个名字叫记录5.一条数据即为表的一行 CRUD操作:create 创建(添加)re ...
- NSArry的常见方法
使用数组对象创建的数组功能非常强大,在Java语言或者C语言中定义的数组必须满足数组中的每一个元素必须是同样的类型.而Objective-C语言可以在Array数组中放任意类型的数据,值得注意的是只能 ...
- 关于<a href='javascript:function()'>
<a href='javascript:function()'> 这样写是为了让这个链接不要链接到新页面转而执行一段js代码.和onclick能起到同样的效果,一般来说,如果要调用脚本还是 ...
- node.js学习路线图
http://www.admin10000.com/document/4624.html
- python 之 utf-8编码的秘密
python3的默认编码方案是utf-8编码,看了些资料,来做总结. 要说utf-8,就要说说unicode,要说unicode,就要说ASCII,我们还是慢慢来. 1.ASCII ASCII编码最初 ...
- 非Controller类无法使用Service bean解决方案
尝试方案: 1 在Spring的配置文件springmvc.xml中,增加扫描项base-package="zxs.ssm.util",增加你需要使用service的类所在的包 ...
- XCODE打包安装包步骤
1. 2. 3. 4. 5. 6. 7. 导出之后就可以看到一个后缀为.ipa 的安装包.
- MAGENTO程序结构图
Magento程序结构图(Program Structure Diagram): /app – 程序根目录 /app/etc – 全局配置文件目录 /app/code – 所有模块安装其模型和控制器的 ...
- magento url rewrite using config.xml
magento url rewrite using config.xml 2012-08-03 14:34:22| 分类: magento|举报|字号 订阅 郁闷了两天啊 http://12 ...
- OO之美
㈠ 设计的分寸 对于设计,还有很多看似"惯常"的法则与经验广泛存在于软件系统中,例如除了经典的23种设计设计模式.还有很多模式之外的模式,按照粒度的大小,系统的特点,规模的大小,而 ...