《专业生产实习报告》参考格式

专业生产实习报告 专 业:

班 级:

学 号:

姓 名:

指导教师:

(按班级填写)

年 月 日

目 录

(空两行) 1 XXXXXXXXXXXXXXXXXXX ???????????????页码 2 XXXXXXXXXXXXXXXXXXX ???????????????页码 (要求:给出一级目录,一律手写。)

1.实习的基本情况

1) 6月17号 星期一 下午2:30

报告 瑞信公司 地点 :2J报告厅

2)6月18日 星期二 下午2:30

报告 硬件组装讲座 地点:2J报告厅

3)6月21日 星期五 上午8:30

报告 网页设计讲座 地点:2J报告厅

4)6月21日 星期五下午2:30

网页设计实践(B座机房)

5)6月23日 星期日 上午9:00

报告: 鑫龙电器工程师讲座(2J报告厅)

6)6月23日 星期日 下午2:00

参观弋矶山医院

7)6月24日 星期一 上午8:30

报告 常用竞赛算法入门讲座 地点:2J报告厅

8)6月24日 星期一下午

硬件组装实践(B座5楼)

9)6月25日 星期二下午2:30

常用算法竞赛入门实践(B座机房)

2 实习的目的与效果

1)本实习是信息管理与信息系统专业的必修实践课程,是学生在进入专业课程学习之前的专业实习。通过实习使学生对专业内容有比较清楚的认识;对我国现行信息系统的建设和运行情况;信息管理制度、方法及实施情况;信息系统对企业或政府的决策的支持情况等有一定程度的了解,使学生熟悉信息管理的实际知识,培养学生调查、研究、观察和分析问题的能力,为专业基础课和专业技术课的学习打下良好的基础。

2)训练学生从事计算机领域专业技术工作及管理工作所必须的各种基本技能和实践动手能力,为以后走向工作岗位打下一定的基础。

3)巩固学生所学的各门课程的基础知识,将理论知识系统化,培养观察、分析和解决问题的能力、提高独立工作能力。

3 实习过程与具体工作内容:

一:瑞信公司:

1)安徽瑞信公司简介:

安徽瑞信软件公司,是一家专业从事软件开发和软件服务的高科技民营企业。瑞信软件公司自成立之日起,就以促进和发展信息化为己任,立足本省,着眼全国。作为专业的软件开发和服务公司,瑞信软件一方面与政府机构、企事业单位紧密合作,组建专业团队深入了解政府和企事业单位各职能领域的实践操作,另一方面不断跟踪和消化最新的软件产品和技术。在技术与经验双重保证下,瑞信软件公司已先后成功为省内外用户建设了近2000个信息化工程,是安徽公安行业、芜湖交通行业、电力行业、奇瑞汽车等信息化战略合作伙伴。 瑞信以“双赢和诚信”为企业精神,以“为客户着想 为明天努力”为经营和发展思想,以“软件就是服务 服务就是做人”为工作态度,公司不仅拥有近百名安徽IT行业的顶尖专业人才,以绝对的技术优势领先于同行,更以优质的服务获得用户好评。瑞信软件在开发方面,从项目规划、设计、编程、调试、测试到维护,每个环节都至臻至善。一批结合了管理实践经验和理论知识以及计算机技术于一身的复合型人才,为政府机构和企事业单位提供信息化咨询和服务,通过服务提高客户的工作效率和管理水平。

2)安徽全省派出所基础工作管理系统

1、应用定位

利用"实有人口"管理理念,使得警务人员能够准确快速的查找到派出所所有的管理对象,利用准确的数据指引警务人员的工作方向和针对性,提高公安局部门的工作效率.

2、项目简介

随着社会的发展,流动人口,暂住人口的管理已经日益的成为治安部门的头疼问题,"三口一屋"的管理模式,已经早已不能满足治安部门的需要,全国各地公安机关也被这种“系统中有此人,在系统中此人的居住地找却不到此人”的问题所困扰,可以说系统的很多数据都是垃圾数据,有时候不仅没有提高工作效率,反而形成的误导。为了解决这个难题,芜湖市公安局率先提出了“实有人口”管理模式,即管理实际现在居住在本市范围内的人,只要是驻留在芜湖市的人,都是管理的对象。人是流动的,管理起来非常的困难,我们知道房屋是静止的,我们同样知道人是要住房屋的,所以只要掌握好芜湖市所有房屋里面

居住的人,那么住在芜湖的所有的人也就被掌握了,他们的提出的概念叫做“以房管人”管理方法。 基于这种管理模式,瑞信与芜湖市公安局进行了紧密的合作,按照金盾工程信息化建设的标准,开发了现在的“派出所基础工作管理系统”,系统首先在芜湖市进行使用,在“实有人口”以及我们公司“派出所基础工作管理系统”平台的支撑下,系统的数据量和准确性都有的质的提高,给民警的工作带来了极大的方便,同时也给领导带来的对民警的科学考核。由于芜湖市公安局的“实有人口”的管理模式的先进性和科学行,他们相继受到了 安徽省公安厅领导,公安局张新枫副部长的大力表彰,系统相继由“马鞍山市公安局”,“合肥市公安局”.....后全安徽省省推广使用。现在全省所有的公安局都在紧锣密鼓的进行实有数据的采集工作,并取得了一定的成效。瑞信公司的“派出所基础工作管理系统”经过公安部的测试并且顺利通过,同时获得了安徽省的软件产品认证。

3)实习总结:

通过本次报告的详细介绍,我了解到系统平台在实际生活中的运用,并了解实际上软件开发与数据库之间的联系,加深了对应用软件开发的了解。

二:硬件组装讲座: 1)电脑硬件组成:

一台电脑是由许许多多的零部件组成,只有这些零部件组合在一起协调的工作,才能称之为电脑。电脑发展到现在,其零部件都有了很大的变化,但其工作原理却没有变,其中包括主板、CPU、内存、硬盘、显卡、声卡等等。下面将简单的介绍组成电脑的各个零部件。一台电脑是由许许多多的零部件组成,只有这些零部件组合在一起协调的工作,才能称之为电脑。电脑发展到现在,其零部件一台电脑是由许许多多的零部件组成,只有这些零部件组合在一起协调的工作,才能称之为电脑。电脑发展到现在,其零部件都有了很大的变化,但其工作原理却没有变,其中包括主板、CPU、内存、硬盘、显卡、声卡等等。下面将简单的介绍组成电脑的各个零部件。

1、主板

主板是整个电脑的基板,是CPU、内存、显卡及各种扩展卡的载体。主板是否稳定关系着整个电脑是否稳定,主板的速度在一定程度上也制约着整机的速度。

2、CPU

最新的赛扬4 1.7G

CPU就是中央处理器,也就是负责运算和控制的控制中心,是电脑的关键部位,相当于人的大脑一样。

3、内存

最新推出的DDR400

内存是电脑的一个临时存储器,它只负责电脑数据的中转而不能永久保存。它的容量和处理速度直接决定了电脑数据传输的快慢,和CPU、硬盘一起并称为电脑的三大件。

4、硬盘

硬盘是我们熟知的电脑配件之一,简单的说就是一个大容量存储器,与主机通讯速度很快,成为现代电脑不可缺少的配件。

5、显卡

GF4 TI4200显卡

显卡的作用就是提供对图像数据的快速处理,显卡也是电脑的重要组成部件之一,而且也是更新换代最快的一个部件,目前很多3D游戏对显卡的要求都很高,因此我们不得不掏钱从新买一块显卡来更新换代。

6、显示器

目前主流的17"纯平显示器

显示器,顾名思义就是电脑的一个显示设备,和电视原理差不多。一般来说,显示器的身价决定于它所采用的显象管,好的显象管可以提供更好的视觉效果,寿命也更长。

7、键盘、鼠标

无线鼠标和键盘

鼠标、键盘一直以来都不被许多人所重视,不过它们却是现代电脑不可缺少的输入设备,没有它们就相当于人没有手一样。

8、其它设备

现代电脑除了上面所列举的七大类配件外,还有很多的相关配件,包括有网卡、声卡、Modem、打印机、扫描仪,绘图仪、手写板等等很多东西,这里就不再一一列举。都有了很大的变化,但其工作原理却没有变,其中包括主板、CPU、内存、硬盘、显卡、声卡等等。下面将简单的介绍组成电脑的各个零部件。

2)硬件选取:

Cpu:主频,核心数量,多核心有利于处理多任务,缓存大小,是否配置3级缓存,制作工艺越高,功耗越低。

内存:规格:DDR2、DDR3、容量、主频、是否构成双通道价格。

硬盘:容量、转速、单碟、容量、缓存大小、可靠性、价格。

显卡:主板集成GPU

Intel G45、G43、G41、G31

AMD 890GX、880G、790GX、785G、780G

CPU集成GPU

Intel 酷睿i3 2100、i5 2300、i7 2600、 i7 2600k

ivy bridge 架构

i7 3770K、i5 3570K

融聚技术

Llano APU

移动版、桌面版

3)实习总结:通过本次报告实习,更了解计算机的内部构造,详细的了解当前在组装计算机时注意配件的参数,电脑性能的决定性因素。

三:网页设计讲座:

1)简介:

网页设计——网站是企业向用户和网民提供信息(包括产品和服务)的一种方式,是企业开展电子商务的基础设施和信息平台,离开网站(或者只是利用第三方网站)去谈电子商务是不可能的。企业的网址被称为“网络商标”,也是企业无形资产的组成部分,而网站是INTERNET上宣传和反映企业形象和文化的重要窗口。 2)主题鲜明

在目标明确的基础上,完成网站的构思创意即总体设计方案。对网站的整体风格和特色作出定位,规划网站的组织结构。

Web站点应针对所服务对象(机构或人)的不同而具有不同的形式。有些站点只提供简洁文本信息;有些则采用多媒体表现手法,提供华丽的图像、闪烁的灯光、复杂的页面布置,甚至可以下载声音和录像片段。好的Web站点把图形表现手法和有效的组织与通信结合起来。

为了做到主题鲜明突出,要点明确,我们将按照客户的要求,以简单明确的语言和画面体现站点的主题;调动一切手段充分表现网站点的个性和情趣,办出网站的特点。

Web站点主页应具备的基本成分包括:页头:准确无误地标识你的站点和企业标志;Email地址:用来接收用户垂询; 联系信息:如普通邮件地址或电话; 版权信息:声明版权所有者等。

充分利用已有信息,如客户手册.公共关系文档.技术手册和数据库等。

3)实战技巧

网页技术更新很快,一个网站的界面设计寿命仅仅2-3年而已。不管是垃圾还是精品,都没有所谓的经典,经典只存在于是哪个首次成功创新性的应用。一个闭门造车者做出的东

西,是远远赶不上综合借鉴者的。网页设计不同于其他艺术,在模仿加创新的网页设计领域当中,即便是完全自己设计的,也是沿用了人们已经认同的大部分用户习惯,而且这种沿袭的痕迹是非常明显的!还有哪个设计者敢腆着脸说,这都是我自己的原创设计?对于业界来说,经典只是个理念和象征!

4)讲座总结:

网页设计不只是一项技术活,更是一种审美与创造美的技术,在当今互联网的环境下,想维持某一样东西经久不衰几乎是不可能的,因而在软件行业,生机与维护显得很重要。

四:网页设计实践:

在本次上机实践中,主要是熟悉与了解网页设计用到的环境,并知道一些简单运用,在上机过程中,我是用Dreamweaver 8 作为网页设计的开发环境,但因为刚开始接触,所以只熟悉几个功能,但也感觉到网页设计其乐无穷,这是对个人能力的考验,更是创新与动手的结合。

五:鑫龙电器工程师讲座:

1)鑫龙电气公司简介:

19xx年 创办市电气设备厂

19xx年 股改,公司成立

20xx年 投资设立了安徽森源电器有限公司

20xx年 设立了安徽鑫龙自动化公司、安徽鑫龙低压电器有限公司、安徽鑫龙变压器 有限公司、安徽鑫龙电器元件销售有限公司等子公司

20xx年 投资设立了安徽鑫龙北京分公司、安徽鑫龙电力工程安装有限公司。 20xx年 投资设立了安徽佑赛科技有限公司

安徽鑫龙电器股份有限公司系国家级高新技术企业;国家产品免检企业;国家火炬计划企业,公司位于芜湖市经济技术开发区九华北路118号;占地近600亩;注册资本为人民币

3.3亿元。

2)网络架构:

3)实习总结:在鑫龙电气的这次讲座中,我了解到信息管理在当今企业中的运用,在财务,出货,进库等实际管理中,运用一个管理系统,可以很方便的了解公司各方面的情况,并制

定发展等规划,在有限的资源里 ,发挥更多的作用。

六:参观弋矶山医院

1)简介: 皖南医学院弋矶山医院坐落在安徽省芜湖市弋矶山风景区,1888年由美国基督教美以美会创办,迄今已有120年。国内著名医学专家吴绍青、沈克非、陈翠贞等人曾在医院任职,现为卫生部首批三级甲等医院、安徽首批“诚信医院”、全国爱婴医院、国家药品临床研究机构、全国卫生系统先进集体、省级文明单位、省园林式单位,是安徽省皖南及皖江地区的医疗、教学、科研、急救和预防指导中心。

2)信息管理系统:在芜湖弋矶山医院中主要应用为挂号预约等应用,

3) 实习体会:在本次实习过程中,我深刻感觉到信息管理系统在日常生活中所发挥的巨大作用,在这样一个信息系统的帮助下,能将医院资源最大化的利用,

七:常用竞赛算法入门讲座

1)分治策略:

主要思想:难以直接解决的大问题,分割成规模较小的相同问题。

分割:子问题互相独立。

分割成多少个?不一定,但应尽可能使子问题规模相当。

二分法搜索:在一个有序的序列中搜索某一个数

主要应用:

1Gray码是一个长度为2n的序列,序列中无相同元素,每个元素都是长度为n位的串,相邻元素恰好只有一位不同。用分治策略设计一个算法对任意的n构造相应的Gray码

2循环赛日程表:设有n=2k个运动员要进行网球循环赛,请设计一个满足以下要求的比赛日程表:

每个选手必须与其他n-1个选手各赛一次

每个选手一天只能赛一次

循环赛一共进行n-1天。

2)贪心算法:

什么是贪心算法? 总是要当前最好的

贪心算法是否有效? 不一定能得到最优解,一般可以得到次优解

什么样的问题适用贪心算法? 当前的最优选择必然是最优解的一部分时,可以使用贪心算法

贪心算法的关键 建立某种顺序,按此顺序进行最优选择,可以得到问题的

最优解。

主要应用:

1登山机器人:给定n 个登山机器人接力攀登的总高度m,及每个机器人连续攀登1 米,2 米,?,k米,所用的时间,编程计算最优攀登方案。

2计算两个数的最大公约数:1)每次对两个数取余,作为下次的除数。

(2)除数为0结束。

(3)除数为0时,被除数就是问题的解。

3一个楼梯有20级,每次可以走1级或2级,从底到顶有多少种走法?

分析:设n级楼梯从底到顶的走法有f(n)种。

走到第n级有两种走法

从n-1走1级

从n-2走2级

所以,f(n)=f(n-1)+f(n-2) ——递归方程

另:f(0)=1 f(1)=1 ——可终止

3)动态规划:

1动态规划的特征

问题可递归/递推求解(不一定是函数形式)。

子问题涉及重复计算。

2 什么样的问题适用动态规划?

大问题可分解为若干个小问题,大问题的最优解受子问题最优解的影响。

小问题间彼此相关。

3 动态规划的要素

已知的初始状态值(可直接有解的最小问题)。

状态转移方程(大问题的解的描述——必然与小问题相关)

中间值的记录(避免重复计算)。

主要应用:

1数塔问题:

图示为一个数字三角形。 请编一个程序计算从顶至底的某处的一条路径,使该路径所经过

的数字的总和最大。

●每一步可沿左斜线向下或右斜线向下走;

●1<三角形行数≤100;

●三角形中的数字为整数0,1,?99;

3 8

8 1 0

2 7 4 4

4 5 2 6 5

2最小乘车费用:【问题描述】

某条街上每一公里就有一汽车站,乘车费用如下表:

而一辆汽车从不行驶超过10公里。某人想行驶n公里,假设他可以任意次换车,请你帮他找到一种乘车方案使费用最小(10公里的费用比1公里小的情况是允许的)。

编一程序:从文件BUSSES.IN中读入对乘车费用的描述;算出最小的价格;把结果写入文件BUSSES.OUT中。

【输入文件】

输入文件共两行,第一行为10个不超过100的整数,依次表示行驶1~10公里的费用,相邻两数间用空格隔开;第二行为某人想要行驶的公里数。

【输出文件】

输出文件仅一行包含一个整数,表示该测试点的最小费用。

【输入样例】

12 21 31 40 49 58 69 79 90 101

15

【输出样例】

147

3最长有序子序列:拦截导弹:问题描述】

某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。

输入导弹依次飞来的高度(雷达给出的高度数据是不大于30000的正整数),计算这套系统最多能拦截多少导弹,如果要拦截所有导弹最少要配备多少套这种导弹拦截系统。 4合唱队形:【问题描述】

N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2?,K,他们的身高分别为T1,T2,?,TK, 则他们的身高满足T1<...<Ti>Ti+1>?>TK(1<=i<=K)。你的任务是,已知所有N位同学的身高,计算最少需要几位同学出列,可以使得剩下的同学排成合唱队形。

八:硬件组装实验: 在本次实际操作组装计算机实验中,见到cpu,gpu,内存等实物图,并详细了解芯片的一些插槽 :在计算机硬件组装中,一般都需要几个工具来辅助组装,主要有:平口螺丝刀、梅花螺丝刀、尖嘴钳等??

在计算机组装前一定要注意以下四点:1、防静电 2、轻拿轻放、尤其是硬盘 3、安装主板是一定要稳固,同时要防止主板变形4、一定要确保各个硬件没有通电,其次要注意各部件接口,虽然严格安装规范和要求,理论上不会发生接口反接现象,但如果要强行插入就有可能出现反接现象,而且容易导致硬件接口损坏,破裂。

硬件安装是有一定的基本步骤的:

1、机箱的安装:主要对机箱进行拆封,并将电源安装在机箱里

2、CPU的安装:在主板处理器插座上插入CPU,并安装散热风扇

3、主板的安装:将主板安装在机箱底板上

4、内存条的安装:将内存条插入主板的内存插槽中

5、显卡的安装:??

6、机箱与主板间的连线:即各种指示灯,电源开关线,PC喇叭的连接,以及硬盘、光驱电源线和数据线的连接。

九:常用算法竞赛入门实践

题目1:循环比赛日程表

设有N个选手进行循环比赛,其中N=2M,要求每名选手要与其他N-1名选手都赛一次,每名选手每天

比赛一次,循环赛共进行N-1天,要求每天没有选手轮空。

【输入文件】

M

【输出文件】

表格形式的比赛安排表

【样例输入】

3

【样例输出】

1 2 3 4 5 6 7 8

2 1 4 3 6 5 8 7

3 4 1 2 7 8 5 6

4 3 2 1 8 7 6 5

5 6 7 8 1 2 3 4

6 5 8 7 2 1 4 3

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

#include<stdio.h>

#include<math.h>

void gametable(int k)

{

int a[100][100];

int n,temp,i,j,p,t;

n=2;//k=0两个参赛选手日程可以直接求得

a[1][1]=1;a[1][2]=2;

a[2][1]=2;a[2][2]=1;

for(t=1;t<k;t++)//迭代处理,依次处理2^n....2^k个选手的比赛日程

{

temp=n;n=n*2;//填左下角元素

for(i=temp+1;i<=n;i++)

for(j=1;j<=temp;j++)

a[i][j]=a[i-temp][j]+temp;//左下角和左上角元素的对应关系

for(i=1;i<=temp;i++)//将左下角元素抄到右上角

for(j=temp+1;j<=n;j++)

a[i][j]=a[i+temp][(j+temp)%n];

for(i=temp+1;i<=n;i++)//将左上角元素抄到右下角

for(j=temp+1;j<=n;j++) a[i][j]=a[i-temp][j-temp];

}

printf("参赛人数为:%d\n(第i行第j列表示和第i个选手在第j天比赛的选手序号)\n",n); for(i=1;i<=n;i++)

for(j=1;j<=n;j++)

{

printf("%d ",a[i][j]);

if(j==n) printf("\n");

} } void main()

{

int k;

printf("比赛选手个数为n(n=2^k),请输入参数K(K>0):\n");

scanf("%d",&k);

if(k!=0)

gametable(k);

}

题目2:登山机器人

【问题描述】

登山机器人是一个极富挑战性的高技术密集型科学研究项目,它为研究发展多智能体系统和多机器人之间的合作与对抗提供了生动的研究模型。登山机器人可以携带有限的能量。在登山过程中,登山机器人需要消耗一定能量,连续攀登的路程越长,其攀登的速度就越慢。在对n 种不同类型的机器人作性能测试时,测定出每个机器人连续攀登1米,2米,?,k 米,所用的时间。现在要对这n个机器人作综合性能测试,举行机器人接力攀登演习。攀登的总高度为m 米。规定每个机器人只能攀登1次,每次至少攀登1 米,最多攀登k 米,而且每个机器人攀登的高度必须是整数,即只能在整米处接力。安排每个机器人攀登适当的高度,使完成接力攀登用的时间最短。

编程任务:

给定n 个登山机器人接力攀登的总高度m,及每个机器人连续攀登1 米,2 米,?,k米,所用的时间,编程计算最优攀登方案。

【输入文件】

由文件input.txt给出输入数据。第一行是正整数n,k和m分别表示机器人的个数,每个机器人最多可以攀登的高度,和攀登的总高度。接下来的n行中,每行有k 个正整数,分别表示机器人连续攀登1米,2米,?,k 米所用的时间

【输出文件】

将计算出的最短攀登时间输出到文件output.txt

专业生产实习报告参考格式

专业生产实习报告参考格式

?

?

?

?

?

?

?

?

? #include <iostream> #include <vector> using namespace std; int main() { vector < vector<int> > timenum; vector<int>line; int jqrnum,maxlength,alllength,tmp=0,result=0,i,j,backtmp; cin >> jqrnum >> maxlength >> alllength;

?? for(i=0;i<jqrnum;i++)

?? {

?? timenum.push_back(line);

?? for( j=0;j<maxlength;j++)

?? {

?? if(j==0)

?? {

?? cin>>tmp;

?? backtmp=tmp; //记录上一次的使用时间,以便计算以后每次走一米所需的时间

?? timenum[i].push_back(tmp); //记录每次走这一米所需的时间 ?? }

?? else

?? {

?? cin>>tmp;

?? timenum[i].push_back(tmp-backtmp);

?? backtmp=tmp;

??

?? }

??

?? }

?? }

?? int tmpmax=0,mark=0;

?? while(alllength)

?? {

?? j=0;

?? while(timenum[j].empty()) //判断此机器人是否已经走到最多可走的步数 ?? {

?? j++;

?? }

?? tmpmax=timenum[j].front(); //此机器人当前步数所需的时间

?? mark=j;

?? for(i=j;i<jqrnum;i++)

?? {

?? if(!timenum[i].empty())

?? {

?? if(tmpmax>timenum[i].front())

?? {

?? tmpmax=timenum[i].front(); //如果有需要更少时间的,则替换 ?? mark=i; //记录此机器人的位置,以便后续删除 ?? }

?? }

?? }

?? timenum[mark].erase(timenum[mark].begin()); //删除vector中此机器人走此步所需的时间,以便每次遍历时,首值都是他再走时所需的时间

?? result+=tmpmax;

?? alllength-=1;

?? }

?? cout<<result<<endl;

?? return 0;

??

?? }

题目3:数塔问题

图示为一个数字三角形。 请编一个程序计算从顶至底的某处的一条路径,使该路径所经过的数字的总和最大。

●每一步可沿左斜线向下或右斜线向下走;

●1<三角形行数≤100;

●三角形中的数字为整数0,1,?99;

3 8

8 1 0

2 7 4 4

4 5 2 6 5

【输入文件】

第一行是一个整数N(2<=N<=100),表示数塔的层数。接下来的N行为整个数塔。

【输出文件】

包括一行,这一行只包含一个整数, 为最大的数字总和。

【样例输入】

5

7

3 8

8 1 0

2 7 4 4

4 5 2 6 5

【样例输出】

30

?

?

?

?

?

?

?

?

? #include <iostream> #define MAX 20 using namespace std; int main() { cout << "Please input N(lines)" << endl; int n; cin >> n; int a[MAX+1][MAX+1][3]; //[0]用来存数,[1]参与运算,[2]表示向左(0),还是向右

(1)

?? //输入数塔

?? for(int i = 1; i <= n; ++i)

?? {

?? cout << "Please input line " << i << endl;

?? for(int j = 1; j <= i; ++j) //第i行有i个数

?? {

?? cin >> a[i][j][0];

?? a[i][j][1] = a[i][j][0];

?? a[i][j][2] = 0;

?? }

?? }

?? cout << endl;

?? //计算

?? for(int i = n-1; i >= 1; --i) //从倒数第二行开始

?? {

?? for(int j=1; j <= i; j++)

?? {

?? if (a[i+1][j][1] > a[i+1][j+1][1]) //左边大

?? {

?? a[i][j][2] = 0; //选择左边

?? a[i][j][1] += a[i+1][j][1];

?? }

?? else //右边大

?? {

?? a[i][j][2] = 1; //选择右边

?? a[i][j][1] += a[i+1][j+1][1];

?? }

?? }

?? }

??

?? //输出数塔

?? for(int i = 1; i <= n; ++i)

?? {

?? for(int j = 1; j <= i; ++j)

?? {

?? cout << a[i][j][0] << " ";

?? }

?? cout << endl;

?? }

?? //输出最大值

?? cout << a[1][1][1] << endl;

?? //输出路径

?? for(int i = 1, j = 1; i<= n; ++i)

?? {

?? cout << "[" << i << "," << j << "]" << " -> ";

?? j += a[i][j][2];

?? }

?? cout << endl;

?? return 0;

?? }

题目4:合唱队形

【问题描述】

N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2?,K,他们的身高分别为T1,T2,?,TK, 则他们的身高满足T1<...<Ti>Ti+1>?>TK(1<=i<=K)。你的任务是,已知所有N位同学的身高,计算最少需要几位同学出列,可以使得剩下的同学排成合唱队形。

【输入文件】

第一行是一个整数N(2<=N<=100),表示同学的总数。第二行有n个整数,用空格分隔,第i个整数Ti(130<=Ti<=230)是第i位同学的身高(厘米)。

【输出文件】

包括一行,这一行只包含一个整数,就是最少需要几位同学出列。

【样例输入】

8

186 186 150 200 160 130 197 220

【样例输出】

4 #include<iostream>

using namespace std;

int Queue[110],Inc[110],Dec[110];

int main()

{

int N;

scanf("%d",&N);

for(int i=0;i<N;i++)

scanf("%d",&Queue[i]);

memset(Inc,0,sizeof(Inc));

memset(Dec,0,sizeof(Dec));

for(int i=0;i<N;i++)

{

Inc[i]=1;

for(int j=0;j<i;j++)

{

if(Queue[i]>Queue[j]&&Inc[j]+1>Inc[i])

Inc[i]=Inc[j]+1;

}

}

for(int i=N-1;i>=0;i--)

{

Dec[i]=1;

for(int j=N-1;j>i;j--)

{

if(Queue[i]>Queue[j]&&Dec[j]+1>Dec[i])

Dec[i]=Dec[j]+1;

}

}

int max=0;

for(int i=0;i<N;i++)

{

if(Inc[i]+Dec[i]>max)

max=Inc[i]+Dec[i];

}

printf("%d\n",N-max+1);

return 0;

}

题目5:采药

【问题描述】

辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大。”

如果你是辰辰,你能完成这个任务吗?

【输入文件】

输入文件medic.in的第一行有两个整数T(1 <= T <= 1000)和M(1 <= M <= 100),用一个空格隔开,T代表总共能够用来采药的时间,M代表山洞里的草药的数目。接下来的M行每行包括两个在1到100之间(包括1和100)的整数,分别表示采摘某株草药的时间和这株草药的价值。

【输出文件】

输出文件medic.out包括一行,这一行只包含一个整数,表示在规定的时间内,可以采到的草药的最大总价值。

【输入样例】

70 3

71 100

69 1

1 2

【输出样例】

3 ?

?

?

?

?

?

?

?

? #include <iostream> using namespace std; #define N 100 int time[N],price[N]; int dp[N][N]; //比较两个数的大小 int max(int a,int b){

??

?? if(a>b){

?? return a;

?? }

?? else{

?? return b;

?? }

?? }

??

?? //n件药 t时间内

?? void cal(int n,int t,int tt[],int pp[]){

??

?? int i,j;

?? for(i=1;i<=n;i++){ //n件物品内

?? for(j=0;j<=t;j++){//在规定的时间内

?? if(j>=tt[i]){ //如果大于某个物品的时间内那么就要考虑选择哪件物品 ?? dp[i][j]=max(dp[i-1][j],dp[i-1][j-tt[i]]+pp[i]); ?? }

?? else{

?? dp[i][j]=dp[i-1][j];

?? }

?? }

?? }

??

?? }

??

?? int main(){

??

?? int i,j,T,M;

?? while(cin>>T>>M){

?? memset(dp,0,sizeof(dp));//初始化

?? for(i=1;i<=M;i++){

?? cin>>time[i]>>price[i];

?? }

?? cal(M,T,time,price);

?? cout<<dp[M][T]<<endl;

?? }

?? return 0;

?? }

4 总结与体会

相关推荐