第三章实验报告

第三章实践报告

一.实践题目

给定一个由 n行数字组成的数字三角形如下图所示。试设计一个算法,计算出从三角形 的顶至底的一条路径(每一步可沿左斜线向下或右斜线向下),使该路径经过的数字总和最大。

输入格式:

输入有n+1行:

第 1 行是数字三角形的行数 n,1<=n<=100。

接下来 n行是数字三角形各行中的数字。所有数字在0..99 之间。

输出格式:

输出最大路径的值。

输入样例:

在这里给出一组输入。例如:

5

7

3 8

8 1 0

2 7 4 4

4 5 2 6 5

输出样例:

在这里给出相应的输出。例如:

30

二.问题描述

以点(i,j)为起点的最优解包含了该点的数值,以及两个子三角形的最优解

三角形存在重叠,即会重复计算

上面就是解决问题的递归方程

三.算法描述

我们采用的是填表法,我们建立一个三角形的数组,每一个格子表示到达此位置最短路径。依次填表最后b[1][1]就是我们最后要的结果。

四.算法时间以及空间复杂程度

用的是两个for语句所以时间复杂程度是O(n*n);

用的是三角形数组的填表法所以空间复杂程度也是O(n*n);

五.心得体会

一开始接触到题目的时候脑子里没有什么想法,一开始想的还是从三角形的最顶端开始算后来查了很多资料,找到了这种算法,之前对于填表并没有实际的去用过,只是知道,还是我们也找不到老师所要的递归方程,后来才发现,他都是有一个个相似的子问题形成的,就最后找到了,收获挺大的。包括在自己代码的过程中总是会出现很多的小问题。也收获这个使用的方法。

原文地址:https://www.cnblogs.com/1149640304penny/p/11704653.html

时间: 2024-08-28 04:47:50

第三章实验报告的相关文章

第五周学习总结&amp;第三次实验报告(String类的应用)

第五周学习总结 1.学习了继承的相关知识点: (1) 继承的格式为class 子类 extends 父类{} (2) 继承实际上是通过子类去扩展父类的功能 (3) 一个子类只能继承一个父类,也就是说,继承只允许多层继承不能多重继承 (4) 子类不能直接访问父类中的私有属性,但是可以调用父类中的getter或者setter去访问 (5) 子类对象在实例化之前必须首先调用父类中的构造方法再调用子类自己的构造方法,子类也可以直接使用super()调用父类中的无参构造 (6) 方法的覆写即子类定义了与父

第三次实验报告:通过抓取TCP了解运输层

第三次实验报告:通过抓取TCP了解运输层 姓名:王璐璐 学号:201821121037 班级:计算1812 0 摘要 在本次实验中,通过对TCP报文的解析,理解TCP协议的连接建立与连接释放过程,以此了解运输层之间可靠传输的工作原理.在使用Cisco Packet Tracer时,将会通过路由器来连接客户端与服务器,在此次实验中还会使用命令行来设置路由器,以此达到网络的联通. 1 实验目的 使用路由器连接不同的网络 使用命令行操作路由器 通过抓取HTTP报文,分析TCP连接建立的过程 2 实验内

java第三次实验报告

20155317 实验三<Java面向对象程序设计>实验报告 一.实验内容 XP基础 XP核心实践 相关工具 二.实验要求 1.没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器>课程 2.完成实验.撰写实验报告,实验报告以博客方式发表在博客园,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等).解决办法(空洞的方法如"查网络"."问同学"."看书&quo

第三次实验报告 敏捷开发与XP实践

一.  实验内容 (一)敏捷开发与XP 摘要:一项实践在XP环境中成功使用的依据通过XP的法则呈现,包括:快速反馈.假设简单性.递增更改.提倡更改.优质工作.XP软件开发的基石是XP的活动,包括:编码.测试.倾听.设计. 学习:XP是一种更加灵活的开发方式和理念,通过迅速的反应及时充分修改程序,保证所有团队成员对资源和责任的共享:适用于“小而精”的团队开发.同时,其所倡导的“倾听”也是实现了程序开发“需求至上”的终极目标. (二)编码标准 编码是一个即主观又客观的过程,每个程序员都有他自己的编程

第三次实验报告 之 五子棋

https://github.com/1246251747/3/blob/master/12.txt 实 验 报 告 实验名称:  五子棋实验报告 姓名:     王文政           学 号:  201303011159 班级:计科13-1 学院:   信息学院 五子棋JAVA实验报告 一.实验目的和要求 1.能够用编程语言实现一个简单的五子棋程序 2.在实际系统中使用.实现人工智能的相关算法 3.进一步加深对人工智能算法的理解 二.五子棋的基本常识与原理 1.五子棋的起源 五子棋,是一

第六章 实验报告 (函数与宏定义)

C程序设计实验报告 实验项目: 6.4.1.1编写由三角形三边求面积的函数 6.4.1.2编写求N的阶层 6.4.1.3求两个整数的最大公约数 6.4.1.4打印输出的指定图形 6.4.2.1模块化程序设计 姓名:杨婷 实验地点:教学楼514教室 实验时间:2019年4月30日 一.实验目的与要求 <1>6.4.1.1编写由三角形三边求面积的函数 调用area()函数求三角形的面积 在求面积函数中运用海伦公式 <2>6.4.1.2编写求N的阶层 定义符号常量 使用长整型变量存放累乘

第六章实验报告

C程序设计实验报告 实验项目: 函数和宏定义实验 姓名: 王雨晴 实验地点: 514物联网实验室 实验时间:2019年4月30日 一.实验目的和要求 1.掌握函数的定义方法和调用规则. 2.掌握C语言程序中主调函数和被调用函数之间进行数据传递的规则. 3.了解函数的返回值及其类型,并正确使用它. 4.了解局部变量和 全局变量的作用域及它们与储存分类的关系,理解变量的存在性和可见性的概念. 5.练习递归函数的使用. 6.理解宏观的概念,掌握定义无参宏和带 参宏的方法.了解文件包含的概念,掌握其用法

第六章 实验报告(函数与宏定义)2

C程序设计实验报告 实验项目:函数和宏定义实验 姓名:罗子健 实验地点:物联网实验室 实验时间:2019年5月16日 一.实验目的与要求 (1)掌握函数定义方法和调用规则. (2)掌握在C语言程序中主调函数和被调用函数之间进行数据传递的规则. (3)了解函数的返回值及其类型,并正确使用它. (4)了解局部变量和全局变量的作用域及它们与储存分类的关系,理解变量的存在性和可变性的概念. (5)练习递归函数的使用. (6)理解宏的概念,掌握定义无参宏和带参宏的方法.了解文件包含的概念,掌握其用法. (

第六章实验报告(2)

C程序设计实验报告 实验项目: 6.4.2.2.利用复化梯形公式计算定积分 6.4.2.3.编计算Ackerman函数 6.4.3.1.编写计算x的y次幂的递归函数getpower(int x,int y).并在主程序中实现输入输出. 6.4.3.2.编写计算学生年龄的递归函数 6.4.3.3.编写递归函数下hi先Ackerma函数 姓名:钟俊敏    实验地点:教学楼514教室     实验时间:5月16日 6.4.2.2.利用复化梯形公式计算定积分 ● 掌握c语言中定义函数的方法 ●掌握通过