ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:32.96KB ,
资源ID:3978241      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3978241.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(noip集训练习 Day4.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

noip集训练习 Day4.docx

1、noip集训练习 Day41动态规划:导弹拦截 NOIP1999(提高组) 第一题【问题描述】某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。输入导弹依次飞来的高度(雷达给出的高度数据是不大于30000的正整数),计算这套系统最多能拦截多少导弹,如果要拦截所有导弹最少要配备多少套这种导弹拦截系统。【输入文件】missile.in单独一行列出导弹依次飞来的高度【输出文件】miss

2、ile.out两行,分别是最多能拦截的导弹数,要拦截所有导弹最少要配备的系统数【输入样例】389 207 155 300 299 170 158 65【输出样例】622合唱队型 NOIP2004(提高组) 第一题N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2,K,他们的身高分别为T1,T2,TK,则他们的身高满足T1.Ti+1TK(1=i=K)。你的任务是,已知所有N位同学的身高,计算最少需要几位同学出列,可以使得剩下的同学排成合唱队形。【输入文件】 输入文件chorus.in的第一行是一

3、个整数N(2=N=100),表示同学的总数。第一行有n个整数,用空格分隔,第i个整数Ti(130=Ti=230)是第i位同学的身高(厘米)。【输出文件】 输出文件chorus.out包括一行,这一行只包含一个整数,就是最少需要几位同学出列。【样例输入】8186 186 150 200 160 130 197 220【样例输出】4【数据规模】对于50的数据,保证有n=20;对于全部的数据,保证有n=100。3. 装箱问题 NOIP2001(普及组) 第四题【问题描述】有一个箱子容量为V(正整数,0V20000),同时有n个物品(0n30,每个物品有一个体积(正整数)。要求n个物品中,任取若干个装

4、入箱内,使箱子的剩余空间为最小。【输入文件】第一 行一个正整数V表示箱子的容量,第二行一个正整数N表示物品个数,接下来N行列出这N个物品各自的体积。【输出文件】单独一行,表示箱子最小的剩余空间。【输入样例】2468312797【输出样例】04. 砝码称重NOIP1996(提高组) 第四题【问题描述】设有1g、2g、3g、5g、10g、20g的砝码各若干枚(其总重=1000),用他们能称出的重量的种类数。【输入文件】a1 a2 a3 a4 a5 a6(表示1g砝码有a1个,2g砝码有a2个,20g砝码有a6个,中间有空格)。【输出文件】Total=N(N表示用这些砝码能称出的不同重量的个数,但不

5、包括一个砝码也不用的情况)。【输入样例】1 1 0 0 0 0【输出样例】TOTAL=35. 积木城堡 XC的儿子小XC最喜欢玩的游戏用积木垒漂亮的城堡。城堡是用一些立方体的积木垒成的,城堡的每一层是一块积木。小XC是一个比他爸爸XC还聪明的孩子,他发现垒城堡的时候,如果下面的积木比上面的积木大,那么城堡便不容易倒。所以他在垒城堡的时候总是遵循这样的规则。小XC想把自己垒的城堡送给幼儿园里漂亮的女孩子们,这样可以增加他的好感度。为了公平起见,他决定把送给每个女孩子一样高的城堡,这样可以避免女孩子们为了获得更漂亮的城堡而引起争执。可是他发现自己在垒城堡的时候并没有预先考虑到这一点。所以他现在要改

6、造城堡。由于他没有多余的积木了,他灵机一动,想出了一个巧妙的改造方案。他决定从每一个城堡中挪去一些积木,使得最终每座城堡都一样高。为了使他的城堡更雄伟,他觉得应该使最后的城堡都尽可能的高。请你帮助小XC编一个程序,根据他垒的所有城堡的信息,决定应该移去哪些积木才能获得最佳的效果。【输入文件】第一行是一个整数N(N=100),表示一共有几座城堡。以下N行每行是一系列非负整数,用一个空格分隔,按从下往上的顺序依次给出一座城堡中所有积木的棱长。用-1结束。一座城堡中的积木不超过100块,每块积木的棱长不超过100。【输出文件】一个整数,表示最后城堡的最大可能的高度。如果找不到合适的方案,则输出0。【

7、输入样例】22 1 13 2 1 -1【输出样例】36采药:【问题描述】辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大。”如果你是辰辰,你能完成这个任务吗?【输入文件】输入文件medic.in的第一行有两个整数T(1 = T = 1000)和M(1 = M = 100),用

8、一个空格隔开,T代表总共能够用来采药的时间,M代表山洞里的草药的数目。接下来的M行每行包括两个在1到100之间(包括1和100)的整数,分别表示采摘某株草药的时间和这株草药的价值。【输出文件】输出文件medic.out包括一行,这一行只包含一个整数,表示在规定的时间内,可以采到的草药的最大总价值。【输入样例】70 371 10069 11 2【输出样例】3【数据规模】对于30%的数据,M = 10;对于全部的数据,M = 100。7金明的预算方案NOIP2006 第二题【问题描述】金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说

9、:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N元钱就行”。今天一早,金明就开始做预算了,他把想买的物品分为两类:主件与附件,附件是从属于某个主件的,下表就是一些主件与附件的例子:主件 附件电脑 打印机,扫描仪书柜 图书书桌 台灯,文具工作椅 无如果要买归类为附件的物品,必须先买该附件所属的主件。每个主件可以有0个、1个或2个附件。附件不再有从属于自己的附件。金明想买的东西很多,肯定会超过妈妈限定的N元。于是,他把每件物品规定了一个重要度,分为5等:用整数15表示,第5等最重要。他还从因特网上查到了每件物品的价格(都是10元的整数倍)。他希望在不超过N元(可以等于N元)的前提下,

10、使每件物品的价格与重要度的乘积的总和最大。设第j件物品的价格为vj,重要度为wj,共选中了k件物品,编号依次为j1,j2,jk,则所求的总和为:vj1*wj1+vj2*wj2+ +vjk*wjk。(其中*为乘号)请你帮助金明设计一个满足要求的购物单。【输入文件】输入文件budget.in 的第1行,为两个正整数,用一个空格隔开:N m (其中N(32000)表示总钱数,m(60)为希望购买物品的个数。)从第2行到第m+1行,第j行给出了编号为j-1的物品的基本数据,每行有3个非负整数: v p q(其中v表示该物品的价格(v0,表示该物品为附件,q是所属主件的编号)【输出文件】输出文件budg

11、et.out只有一个正整数,为不超过总钱数的物品的价格与重要度乘积的总和的最大值(200000)。【输入样例】1000 5800 2 0400 5 1300 5 1400 3 0500 2 0【输出样例】22008 Money Systems USACO 2.3【问题描述】母牛们不但创建了他们自己的政府而且选择了建立了自己的货币系统。他们对货币的数值感到好奇。传统地,一个货币系统是由1,5,10,20 或 25,50, 和 100的单位面值组成的。母牛想知道有多少种不同的方法来用货币系统中的货币来构造一个确定的数值。举例来说, 使用一个货币系统 1,2,5,10,.产生 18单位面值的一些可能

12、的方法是:18x1, 9x2, 8x2+2x1, 3x5+2+1,等等其它。写一个程序来计算有多少种方法用给定的货币系统来构造一定数量的面值。保证总数将会适合long long (C/C+) 和 Int64 (Free Pascal)。【输入文件】货币系统中货币的种类数目是 V (1= V=25)。要构造的数量钱是 N (1= N=10,000)。第 1 行: 二整数, V 和 N第 2 行: 可用的货币 V 个整数。【输出文件】单独的一行包含那个可能的构造的方案数。【输入样例】3 101 2 5【输出样例】109数塔问题IOI94【问题描述】考虑在下面被显示的数字金字塔。写一个程序来计算从最

13、高点开始在底部任意处结束的路径经过数字的和的最大。每一步可以走到左下方的点也可以到达右下方的点。73 88 1 02 7 4 44 5 2 6 5在上面的样例中,从7 到 3 到 8 到 7 到 5 的路径产生了最大和:30【输入文件】第一个行包含 R(1= R=1000) ,表示行的数目。后面每行为这个数字金字塔特定行包含的整数。所有的被供应的整数是非负的且不大于100。【输出文件】单独的一行包含那个可能得到的最大的和。【输入样例】573 88 1 02 7 4 44 5 2 6 5【输出样例】3010. Henry捡钱最近,Henry由于失恋(被某大牛甩掉!)心情很是郁闷.所以,他去了大牛

14、家,寻求Michael大牛的帮助,让他尽快从失恋的痛苦中解脱出来.Michael大牛知道Henry是很爱钱的,所以他是费尽脑水,绞尽脑汁想出了一个有趣的游戏,帮助Henry.Michael感觉自己简直是个天才(我们从不这么认为),就把这个游戏取名为:Henry拣钱.为了帮助更多的人采用这种方法早日脱离失恋之苦,Michael特地选在这次DT比赛中把游戏介绍给大家.(大家鼓掌!)其实,这个游戏相当垃圾,目的就是为了满足Henry这种具有强烈好钱的心理的人.游戏是这样的:Michael首先找到了一块方形的土地,面积为m*n(米2).然后他将土地划分为一平方米大小的方形小格.Michael在每个格子

15、下都埋有钱(用非负数s表示,表示人民币的价值为s)和炸弹(用负数s表示,表示Henry挖出该方格下的东西会花掉s的钱去看病,医炸弹炸伤的伤口).游戏的要求就是让Henry从一侧的中间列出发,按照下图的5种方式前进(前进最大宽度为5),不能越出方格.他每到一个格子,必定要取走其下相应的东西.直到到达土地的另一侧,游戏结束.不用说也知道,Henry肯定想得到最多的人民币.所以他偷窥了,Michael埋钱的全过程,绘成了一张距阵图.由于他自己手动找会很麻烦,于是他就找到了学习编程的你.请给帮他找出,最大人民币价值.拣钱路线规则(只有5个方向,如下图): H为Henry的出发点,每组数据的出发点都是最

16、后一行的中间位置!(前方5个格子为当前可以到达的)【输入文件】第一行为m n.(n为奇数),入口点在最后一行的中间接下来为m*n的数字距阵.共有m行,每行n个数字.数字间用空格隔开.代表该格子下是钱或炸弹.为了方便Henry清算,数字全是整数.【输出文件】一个数,为你所找出的最大人民币价值.【输入样例】6 716 4 3 12 6 0 34 -5 6 7 0 0 26 0 -1 -2 3 6 85 3 4 0 0 -2 7-1 7 4 0 7 -5 60 -1 3 4 12 4 2【输出样例】51【数据范围】N and M=20011. 乌龟棋【问题描述】小明过生日的时候,爸爸送给他一副乌龟棋

17、当作礼物。乌龟棋的棋盘是一行N 个格子,每个格子上一个分数(非负整数)。棋盘第1 格是唯一的起点,第N 格是终点,游戏要求玩家控制一个乌龟棋子从起点出发走到终点。乌龟棋中M 张爬行卡片,分成4 种不同的类型(M 张卡片中不一定包含所有4 种类型的卡片,见样例),每种类型的卡片上分别标有1、2、3、4 四个数字之一,表示使用这种卡片后,乌龟棋子将向前爬行相应的格子数。游戏中,玩家每次需要从所有的爬行卡片中选择一张之前没有使用过的爬行卡片,控制乌龟棋子前进相应的格子数,每张卡片只能使用一次。游戏中,乌龟棋子自动获得起点格子的分数,并且在后续的爬行中每到达一个格子,就得到该格子相应的分数。玩家最终游

18、戏得分就是乌龟棋子从起点到终点过程中到过的所有格子的分数总和。很明显,用不同的爬行卡片使用顺序会使得最终游戏的得分不同,小明想要找到一种卡片使用顺序使得最终游戏得分最多。现在,告诉你棋盘上每个格子的分数和所有的爬行卡片,你能告诉小明,他最多能得到多少分吗?【输入】输入文件名tortoise.in。输入文件的每行中两个数之间用一个空格隔开。第1 行2 个正整数N 和M,分别表示棋盘格子数和爬行卡片数。第2 行N 个非负整数,其中表示棋盘第i 个格子上的分数。第3 行M 个整数,,表示M 张爬行卡片上的数字。输入数据保证到达终点时刚好用光M 张爬行卡片,即N1=【输出】输出文件名tortoise.

19、out。输出只有1 行,1 个整数,表示小明最多能得到的分数。【输入输出样例1】tortoise.in tortoise.out 9 5 6 10 14 2 8 8 18 5 171 3 1 2 1 73 小明使用爬行卡片顺序为 1,1,3,1,2,得到的分数为 6+10+14+8+18+17=73。注意,由于起点是 1,所以自动获得第 1格的分数 6。【输入输出样例 2】 tortoise.in tortoise.out 13 8 4 96 10 64 55 13 94 53 5 24 89 8 301 1 1 1 1 2 4 1 455【数据范围】对于 30%的数据有 1 N 30,1 M

20、 12。对于 50%的数据有 1 N 120,1 M 50,且 4种爬行卡片,每种卡片的张数不会超过 20。对于 100%的数据有 1 N 350,1 M 120,且 4种爬行卡片,每种卡片的张数不超过 40;0 ai 100,1 i N;1 bi 4,1 i M。输入数据保证 N1=区间动归合并石子【问题描述】在一个操场上摆放着一行共n堆的石子。现要将石子有序地合并成一堆。规定每次只能选相邻的两堆合并成新的一堆,并将新的一堆石子数记为该次合并的得分。请编辑计算出将n堆石子合并成一堆的最小得分和将n堆石子合并成一堆的最大得分。【输入文件】输入第一行为n(n1000),表示有n堆石子,第二行为n

21、个用空格隔开的整数,依次表示这n堆石子的石子数量(=1000)【输出文件】输出将n堆石子合并成一堆的最小得分和将n堆石子合并成一堆的最大得分。【输入样例】31 2 3【输出样例】9 11贪心失效例子:3 4 6 5 4 25 4 6 5 4 得分:59 6 5 4 得分:99 6 9 得分:915 9 得分:1524 得分:24总得分:62合理方案3 4 6 5 4 27 6 5 4 2 得分:77 6 5 6 得分:67 11 6 得分:1113 11 得分:1324 得分:24总得分:61能量项链【问题描述】在Mars星球上,每个Mars人都随身佩带着一串能量项链。在项链上有N颗能量珠。能

22、量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数。并且,对于相邻的两颗珠子,前一颗珠子的尾标记一定等于后一颗珠子的头标记。因为只有这样,通过吸盘(吸盘是Mars人吸收能量的一种器官)的作用,这两颗珠子才能聚合成一颗珠子,同时释放出可以被吸盘吸收的能量。如果前一颗能量珠的头标记为m,尾标记为r,后一颗能量珠的头标记为r,尾标记为n,则聚合后释放的能量为(Mars单位),新产生的珠子的头标记为m,尾标记为n。需要时,Mars人就用吸盘夹住相邻的两颗珠子,通过聚合得到能量,直到项链上只剩下一颗珠子为止。显然,不同的聚合顺序得到的总能量是不同的,请你设计一个聚合顺序,使一串项链释放出的总能量

23、最大。例如:设N=4,4颗珠子的头标记与尾标记依次为(2,3) (3,5) (5,10) (10,2)。我们用记号表示两颗珠子的聚合操作,(jk)表示第j,k两颗珠子聚合后所释放的能量。则第4、1两颗珠子聚合后释放的能量为:(41)=10*2*3=60。这一串项链可以得到最优值的一个聚合顺序所释放的总能量为(41)2)3)=10*2*3+10*3*5+10*5*10=710。【输入文件】输入文件energy.in的第一行是一个正整数N(4N100),表示项链上珠子的个数。第二行是N个用空格隔开的正整数,所有的数均不超过1000。第i个数为第i颗珠子的头标记(1iN),当iN时,第i颗珠子的尾标

24、记应该等于第i+1颗珠子的头标记。第N颗珠子的尾标记应该等于第1颗珠子的头标记。至于珠子的顺序,你可以这样确定:将项链放到桌面上,不要出现交叉,随意指定第一颗珠子,然后按顺时针方向确定其他珠子的顺序。【输出文件】输出文件energy.out只有一行,是一个正整数E(E2.1*109),为一个最优聚合顺序所释放的总能量。【输入样例】42 3 5 10【输出样例】710盖房子冯老师最近得到了面积为n*m的一大块土地,他想在这块土地上建造一所房子,这个房子必须是正方形的。但是,这块土地并非十全十美,上面有很多不平坦的地方(也可以叫瑕疵)。这些瑕疵十分恶心,以至于根本不能在上面盖一砖一瓦。 他希望找到

25、一块最大的正方形无瑕疵土地来盖房子。 不过,这并不是什么难题,冯老师在10分钟内就轻松解决了这个问题。现在,你也来试试吧。【输入文件】输入文件第一行为两个整数n,m(1=n,m=1000),接下来n行,每行m个数字,用空格隔开。0表示该块土地有瑕疵,1表示该块土地完好。【输出文件】一个整数,最大正方形的边长。【输入样例】4 40 1 1 11 1 1 00 1 1 01 1 0 1【输出样例】2加分二叉树【问题描述】设一个n个节点的二叉树tree的中序遍历为(l,2,3,n),其中数字1,2,3,n为节点编号。每个节点都有一个分数(均为正整数),记第i个节点的分数为di,tree及它的每个子树

26、都有一个加分,任一棵子树subtree(也包含tree本身)的加分计算方法如下:subtree的左子树的加分 subtree的右子树的加分subtree的根的分数若某个子树为空,规定其加分为1,叶子的加分就是叶节点本身的分数。不考虑它的空子树。试求一棵符合中序遍历为(1,2,3,n)且加分最高的二叉树tree。要求输出;(1)tree的最高加分(2)tree的前序遍历【输入格式】第1行:一个整数n(n30),为节点个数。第2行:n个用空格隔开的整数,为每个节点的分数(分数100)。【输出格式】第1行:一个整数,为最高加分(结果不会超过4,000,000,000)。第2行:n个用空格隔开的整数,

27、为该树的前序遍历。【输入样例】55 7 1 2 10【输出样例】1453 1 2 4 5滑雪冯老师喜欢滑雪。他来到了一个滑雪场,这个滑雪场是一个矩形,为了简便,我们用r行c列的矩阵来表示每块地形。为了得到更快的速度,滑行的路线必须向下倾斜。例如样例中的那个矩形,可以从某个点滑向上下左右四个相邻的点之一。例如24-17-16-1,其实25-24-233-2-1更长,事实上这是最长的一条。输入格式 Input Format 输入文件 第1行: 两个数字r,c(1=r,c=100),表示矩阵的行列。 第2.r+1行:每行c个数,表示这个矩阵。 输出格式 Output Format 输出文件仅一行: 输出1个整数,表示可以滑行的最大长度。输入样例1:5 51 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9输出样例1:25

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1