数字三角形


总时间限制: 1000ms 内存限制: 65536kB



描述

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

(图1)
图1给出了一个数字三角形。从三角形的顶部到底部有很多条不同的路径。对于每条路径,把路径上面的数加起来可以得到一个和,你的任务就是找到最大的和。

输入

输入的是一行是一个整数N(100>=N>=1),给出三角形的行数。下面的N行给出数字三角形。数字三角形上的数的范围都在0和100之间。

输出

输出最大的和。

样例输入

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

样例输出

30

思路

1.搜索

#include<bits/stdc++.h>
using namespace std;
int a[105][105],s;
int dfs(int i,int j)
{
if(i==s)
return a[i][j];
return a[i][j]+max(dfs(i+1,j),dfs(i+1,j+1));
}
int main()
{
cin>>s;
for(int i=1;i<=s;i++)
for(int j=1;j<=i;j++)
cin>>a[i][j];
cout<<dfs(1,1);
return 0;
}

时间复杂度为\(O(2^n)\),最大为\(O(2^{100}),\)超时。

2.记忆化搜索

#include<bits/stdc++.h>
using namespace std;
int a[105][105],s,b[105][105];
int dfs(int i,int j)
{
if(i==s)
return a[i][j];
if(b[i][j]!=0)
return b[i][j];
b[i][j]=a[i][j]+max(dfs(i+1,j),dfs(i+1,j+1));
return b[i][j];
}
int main()
{
cin>>s;
for(int i=1;i<=s;i++)
for(int j=1;j<=i;j++)
cin>>a[i][j];
cout<<dfs(1,1);
return 0;
}

由于每个位置只搜索了一次,所以时间复杂度为\(O(n^2)\),通过 ! ! !

3.递推(顺推)

#include<bits/stdc++.h>
using namespace std;
int a[105][105],s;
int main()
{
cin>>s;
cin>>a[1][1];
for(int i=2;i<=s;i++)
{
cin>>a[i][1];
a[i][1]+=a[i-1][1];
for(int j=2;j<=i;j++)
{
cin>>a[i][j];
a[i][j]+=max(a[i-1][j],a[i-1][j-1]);
}
}
int maxx=-1;
for(int j=1;j<=s;j++)
maxx=max(maxx,a[s][j]);
cout<<maxx;
return 0;
}

同样,时间复杂度为\(O(n^2)\),通过 。

4.递推(逆推)

#include<bits/stdc++.h>
using namespace std;
int a[105][105],s;
int main()
{
cin>>s;
for(int i=1;i<=s;i++)
for(int j=1;j<=i;j++)
cin>>a[i][j];
for(int i=s-1;i>=1;i--)
for(int j=1;j<=i;j++)
a[i][j]+=max(a[i+1][j],a[i+1][j+1]);
cout<<a[1][1];
return 0;
}

不用多说,时间复杂度也为\(O(n^2),\)通过。


&nbsp 以上便是此题的多种解法,欢迎下次再来。

[IOI 1994]数字三角形的更多相关文章

  1. G:数字三角形

    总时间限制: 1000ms 内存限制: 65536kB描述73   88   1   02   7   4   44   5   2   6   5 (图1) 图1给出了一个数字三角形.从三角形的顶部 ...

  2. 4829 [DP]数字三角形升级版

    4829 [DP]数字三角形升级版  时间限制: 1 s  空间限制: 16000 KB  题目等级 : 黄金 Gold 题解       题目描述 Description 从数字三角形的顶部(如图, ...

  3. 【递归】数字三角形 简单dp

    [递归]数字三角形 题目描述 对于大多数人来说,“我们是这么的正常,因此也就这么的平庸.”而天才总是与众不同的,所以当邪狼问修罗王:“老大,你蹲在那儿一动不动看了有半个小时了,蚂蚁有那么好看吗?” 修 ...

  4. hihocoder 1037 数字三角形

    #1037 : 数字三角形 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 问题描述 小Hi和小Ho在经历了螃蟹先生的任务之后被奖励了一次出国旅游的机会,于是他们来到了大洋彼岸 ...

  5. lintcode:数字三角形

    题目: 数字三角形 给定一个数字三角形,找到从顶部到底部的最小路径和.每一步可以移动到下面一行的相邻数字上. 样例 比如,给出下列数字三角形: [      [2],     [3,4],    [6 ...

  6. 1989-C. 数字三角形

    描述 如图所示,是一个数字搭成的三角形. 若起始位置在三角形的顶端,结束位置在三角形底边,每一步只能向下方或向右下角移动一格.请编程计算一条路径,使得路径上经过的数字和最大.(图中路径7→3→8→7→ ...

  7. 洛谷P1118 数字三角形游戏

    洛谷1118 数字三角形游戏 题目描述 有这么一个游戏: 写出一个1-N的排列a[i],然后每次将相邻两个数相加,构成新的序列,再对新序列进行这样的操作,显然每次构成的序列都比上一次的序列长度少1,直 ...

  8. HDU 1176 免费馅饼(数字三角形)

    免费馅饼 Problem Description 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼.说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉 ...

  9. [CODEVS1220]数字三角形

    题目描述 Description 如图所示的数字三角形,从顶部出发,在每一结点可以选择向左走或得向右走,一直走到底层,要求找出一条路径,使路径上的值最大. 输入描述 Input Description ...

随机推荐

  1. 整理:C#常用字符串操作,常用数值类型转换

    一.字符串操作 1. 字符串连接 //将指定的数组所有元素拼接为一个字符串 string[] arr = {"A","B","C"}; st ...

  2. 第13章 C#中的多线程

    章多线程 13.1 线程概述 计算机的操作系统多采用多任务和分时设计.多任务是指在一个操作系统中开以同时运行多个程序.例如,可以在使用QQ聊天的同时听音乐,即有多个独立的任务,每个任务对应一个进程,每 ...

  3. SpringMVC-拦截器做一个登录认证的小Demo

    拦截器 拦截器的定义 处理器拦截器类似于servlet开发中的filter,用于对处理器进行预处理和后处理. 定义拦截器,实现HandlerInterceptor这个接口 接口的实现需要导入包impo ...

  4. 用chrome的snippets片段功能创建页面js外挂程序,从控制台创建js小脚本

    用chrome的snippets片段功能创建页面js外挂程序,从控制台创建js小脚本 Chrome的snippets是小脚本,还可以创作并在Chrome DevTools的来源面板中执行.可以访问和从 ...

  5. 隐马尔科夫模型(Hidden Markov Models) 系列之三

    转自:http://blog.csdn.net/eaglex/article/details/6418219 隐马尔科夫模型(Hidden Markov Models) 定义 隐马尔科夫模型可以用一个 ...

  6. kali2.0升级

    1.登录kali2.0系统 2 2.修改软件源APT-sources.list vim /etc/apt/sources.list 3 可以删除该文件中的所有内容,也可以直接在文前添加新的APT源. ...

  7. mapping 映射

    es的映射就相当于编程语言中给变量定义类型,定义后的变量使用起来更高效,未定义的变量相较于定义的性能肯定是不如的.所以需要掌握es映射. 未定义映射es会对提供的数据进行类型猜测,如果对自动判断的类型 ...

  8. CentOS 7 安装配置分布式文件系统 FastDFS 5.0.5

    前言 项目中用到文件服务器,有朋友推荐用FastDFS,所以就了解学习了一番,感觉确实颇为强大,在此再次感谢淘宝资深架构师余庆大神开源了如此优秀的轻量级分布式文件系统,本篇文章就记录一下FastDFS ...

  9. 半小时上手laya

    laya的性能挺高,跟顶级的pixi.js差一些.比egret的性能强一些 laya的代码是偏功能性的, 观赏性,可读性比很差. 第一步,github上看了下,layaair二百星不到? 想不到堂堂的 ...

  10. m0n0防火墙安装配置方法

    m0n0防火墙安装配置方法 准备工具: vmware虚拟机 m0n0防火墙安装镜像:M0n0Wall - generic-pc-1.8.1.iso 桥接网卡ip:192.168.43.0/24 hos ...