全国青少年信息学奥林匹克竞赛NOI课案.docx
- 文档编号:9810858
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:16
- 大小:130.95KB
全国青少年信息学奥林匹克竞赛NOI课案.docx
《全国青少年信息学奥林匹克竞赛NOI课案.docx》由会员分享,可在线阅读,更多相关《全国青少年信息学奥林匹克竞赛NOI课案.docx(16页珍藏版)》请在冰点文库上搜索。
全国青少年信息学奥林匹克竞赛NOI课案
MT全国青少年信息学奥林匹克題
NOI2010
2010.
能量采集
【问题描述】
栋栋有一块长方形的地,他在地上种了一种能量植物,这种植物可以采集太阳光的能量。
在这些植物采集能量后,栋栋再使用一个能量汇集机器把这些植物采集到的能量汇集到一起。
栋栋的植物种得非常整齐,一共有n列,每列有m棵,植物的横竖间距都一样,因此对于
每一棵植物,栋栋可以用一个坐标(x,y)来表示,其中x的范围是1至n,表示是在第x列,
y的范围是1至m,表示是在第x列的第y棵。
由于能量汇集机器较大,不便移动,栋栋将它放在了一个角上,坐标正好是(0,0)。
能量汇集机器在汇集的过程中有一定的能量损失。
如果一棵植物与能量汇集机器连接而成的
线段上有k棵植物,则能量的损失为2k+1。
例如,当能量汇集机器收集坐标为(2,4)的植物时,由于连接线段上存在一棵植物(1,2),会产生3的能量损失。
注意,如果一棵植物与
能量汇集机器连接的线段上没有植物,则能量损失为1。
现在要计算总的能量损失。
下面给出了一个能量采集的例子,其中n=5,m=4,一共有20棵植物,在每棵植物上
标明了能量汇集机器收集它的能量时产生的能量损失。
【输入格式】
输入文件energy.in仅包含一行,为两个整数n和m。
【输出格式】
输出文件energy.out仅包含一个整数,表示总共产生的能量损失。
【样例输入1】
54
【样例输出1】
36
【样例输入2】
34
【样例输出2】
20
对于10%的数据:
对于50%的数据:
对于80%的数据:
对于90%的数据:
对于100%的数据:
【数据规模和约定】
1wn,m秀10
1wn,mw100
1wn,mw1000
1wn,mw10,000
1wn,mw100,。
000
【运行时限】
1秒。
【运行空限】
512M。
超级钢琴
【问题描述】
小Z是一个小有名气的钢琴家,最近C博士送给了小Z一架超级钢琴,小Z希望能够用这架钢琴创作出世界上最美妙的音乐。
这架超级钢琴可以弹奏出n个音符,编号为1至n。
第i个音符的美妙度为A,其中A可正可负。
一个“超级和弦”由若干个编号连续的音符组成,包含的音符个数不少于L且不多于R。
我们定义超级和弦的美妙度为其包含的所有音符的美妙度之和。
两个超级和弦被认为是相同的,当且仅当这两个超级和弦所包含的音符集合是相同的。
小Z决定创作一首由k个超级和弦组成的乐曲,为了使得乐曲更加动听,小Z要求该乐曲由k个不同的超级和弦组成。
我们定义一首乐曲的美妙度为其所包含的所有超级和弦的美妙度之和。
小Z想知道他能够创作出来的乐曲美妙度最大值是多少。
【输入格式】
输入文件名为piano.in。
输入文件第一行包含四个正整数n,k,L,R。
其中n为音符的个数,k为乐曲所包含的超级和弦个数,L和R分别是超级和弦所包含音符个数的下限和上限。
接下来n行,每行包含一个整数A,表示按编号从小到大每个音符的美妙度。
【输出格式】
输出文件为piano.out。
输出文件只有一个整数,表示乐曲美妙度的最大值。
【样例输入】
4323
3
2
-6
8
【样例输出】
【样例说明】
共有5种不同的超级和弦:
1.音符1~2,美妙度为3+2=5
2.音符2〜3,美妙度为2+(-6)=-4
3.音符3〜4,美妙度为(-6)+8=2
4.音符1〜3,美妙度为3+2+(-6)=-1
5.音符2〜4,美妙度为2+(-6)+8=4
最优方案为:
乐曲由和弦1,和弦3,和弦5组成,美妙度为5+2+4=11
【运行时限】
2秒。
【运行空限】
512M
【数据规模和约定】
总共10个测试点,数据范围满足:
测试点
N
k
1
<10
<100
<1.000
<500,000
3
<100,000
=1
4
<10.000
<10,000
5
<500,000
<10.000
6
<80,000
<80,000
7
<100.000
<100.000
8
<100.000
<500,000
9
<500,000
<500.000
10
<500.000
<500,000
所有数据满足:
-1000 海拔 【问题描述】 YT市是一个规划良好的城市,城市被东西向和南北向的主干道划分为nXn个区域。 简 单起见,可以将YT市看作一个正方形,每一个区域也可看作一个正方形。 从而,YT城市 中包括(n+1)x(n+个交叉路口和2nx(n+1条双向道路(简称道路),每条双向道路连接主干道上两个相邻的交叉路口。 下图为一张YT市的地图(n=2),城市被划分为2X2个区域,包括3X3个交叉路口和12条双向道路。 H;=1 小Z作为该市的市长,他根据统计信息得到了每天上班高峰期间YT市每条道路两个方 向的人流量,即在高峰期间沿着该方向通过这条道路的人数。 每一个交叉路口都有不同的 海拔高度值,YT市市民认为爬坡是一件非常累的事情,每向上爬h的高度,就需要消耗h 的体力。 如果是下坡的话,则不需要耗费体力。 因此如果一段道路的终点海拔减去起点海拔的值为h(注意h可能是负数),那么一个人经过这段路所消耗的体力是max{0,h}(这里 max{a,b}表示取a,b两个值中的较大值)。 小Z还测量得到这个城市西北角的交叉路口海拔为0,东南角的交叉路口海拔为1(如上 图所示),但其它交叉路口的海拔高度都无法得知。 小Z想知道在最理想的情况下(即你可 以任意假设其他路口的海拔高度),每天上班高峰期间所有人爬坡消耗的总体力和的最小值。 【输入格式】 输入文件altitude.in第一行包含一个整数n,含义如上文所示。 接下来4n(n+1)行,每行包含一个非负整数分别表示每一条道路每一个方向的人流量信息。 输入顺序: n(n+1)个数表示所有从西到东方向的人流量,然后n(n+1)个数表示所有从 北到南方向的人流量,n(n+1)个数表示所有从东到西方向的人流量,最后是n(n+1)个数表示所有从南到北方向的人流量。 对于每一个方向,输入顺序按照起点由北向南,若南北方向 相同时由西到东的顺序给出(参见样例输入)。 【输出格式】 输出文件altitude.out仅包含一个数,表示在最理想情况下每天上班高峰期间所有人爬坡所消耗的总体力和(即总体力和的最小值),结果四舍五入到整数。 【样例输入】 1 1 2 3 4 5 6 7 8 【样例输出】 【样例说明】 样例数据见下图。 H=0■H=1 最理想情况下所有点的海拔如上图所示。 【数据规模】 对于20%的数据: nW3 对于50%的数据: nW15 对于80%的数据: nW40 对于100%的数据: 1WnW500W流量W1,000,000且所有流量均为整数。 【提示】 海拔高度不一定是整数。 【运行时限】 2秒。 【运行空限】 512M。 航空管制 【问题描述】 世博期间,上海的航空客运量大大超过了平时,随之而来的航空管制也频频发生。 最近,小X就因为航空管制,连续两次在机场被延误超过了两小时。 对此,小X表示很不满意。 在这次来烟台的路上,小X不幸又一次碰上了航空管制。 于是小X开始思考关于航空管制的问题。 假设目前被延误航班共有n个,编号为1至n。 机场只有一条起飞跑道,所有的航班需按某个顺序依次起飞(称这个顺序为起飞序列)。 定义一个航班的起飞序号为该航班在起飞序列中的位置,即是第几个起飞的航班。 起飞序列还存在两类限制条件: 第一类(最晚起飞时间限制): 编号为i的航班起飞序号不得超过ki; ・第二类(相对起飞顺序限制): 存在一些相对起飞顺序限制(a,b),表示航班a的起飞时间必须早于航班b,即航班a的起飞序号必须小于航班b的起飞序号。 小X思考的第一个问题是,若给定以上两类限制条件,是否可以计算出一个可行的起飞序列。 第二个问题则是,在考虑两类限制条件的情况下,如何求出每个航班在所有可行的起飞序列中的最小起飞序号。 【输入格式】 输入文件plane.in第一行包含两个正整数n和mn表示航班数目,m表示第二类限制条件(相对起飞顺序限制)的数目。 第二行包含n个正整数k1,k2,…,kn。 接下来m行,每行两个正整数a和b,表示一对相对起飞顺序限制(a,b),其中Ka,b 【输出格式】 输出文件plane.out由两行组成。 第一行包含n个整数,表示一个可行的起飞序列,相邻两个整数用空格分隔。 输入数据保证至少存在一个可行的起飞序列。 如果存在多个可行的方案,输出任意一个即可。 第二行包含n个整数tl,t2,…,tn,其中ti表示航班i可能的最小起飞序号,相邻两个整数用空格分隔。 【如何评分】 如果你的输出文件格式与题目要求不符,则得0分。 即你的输出文件必须满足: 第一行恰好包含n个整数,且第二行也恰好包含n个整数。 当你的输出文件格式与题目要求相符时: 1.如果仅第一行正确,获得对应测试点40%勺分数; 2.如果仅第二行正确,获得对应测试点60%勺分数; 3.如果两行均正确,获得对应测试点100%勺分数。 【样例输入1】 55 45254 12 32 51 34 31 【样例输出1】 35142 34121 【样例输入2】 50 33355 【样例输出2】 32154 11144 【样例说明】 在样例1中: 起飞序列35142满足了所有的限制条件,所有满足条件的起飞序列有: 34512351243514235412 531245314253412 由于存在(5,1)和(3,1)两个限制,航班1只能安排在航班5和3之后,故最早起飞时间为3,其他航班类似。 在样例2中: 虽然航班4、5没有相对起飞顺序限制,但是由于航班1、2、3都必须安排在前3个起飞,所以4、5最早只能安排在第4个起飞。 【数据范围】 对于30%^据: nW10; 对于60徹据: nW500; 对于100%^据: nW2,000,mW10,000。 【运行时限】 1秒。 【运行空限】 512M 旅行路线 【问题描述】 2010年,世博会在中国上海举办,吸引了数以千万计的中外游客前来参观。 暑假期间小Z也来到了上海世博园,她对世博园的拥挤早有所闻,对有的展馆甚至要排上好几个小时的队才能进入也做好了充分准备,但为了使得自己的世博之旅更加顺利舒畅,小Z决定在游玩之前先制定一份详细的旅行路线。 小Z搜集到了世博园的地图,她发现从整体上看世博园是一块非常狭长的区域,而每一个展馆占用了其中一个几乎相同大小的方块。 因此可以将整个园区看成一个nxm的矩阵(n<3),其中每一个格子为一个主题展馆。 由于不同展馆受到的关注度会有一些差别,因此排队时间的长短也不尽相同。 小Z根据统计信息给每一个展馆(x,y)标记了Tx,y=0或1,如果Tx,y=1,表示这个展馆非常热门,需要排很长时间的队;如果Tx,y=0,表示这个展馆相对比较普通,几乎不需要排队即可进入参观。 小Z希望能够制定一份合理的路线,使得能交替参观热门馆和普通馆,既不会因为总是参观热门馆而长时间在排队,也不会因为总是参观普通馆而使得游览过于平淡。 同时,小Z办事很讲究效率,她希望在游遍所有展馆的同时,又不会走冤枉路浪费体力。 因此她希望旅行路线满足以下几个限制: 1.在参观完位于(x,y)的展馆后,下一个参观的是一个相邻的且未被参观过 的展馆(X: y'),即|x-x'|+|y-y'|=1; 2.路线的起点位于整个矩阵的边界上,即x=1或x=n或y=1或y=m;她制定了一个长度为n*m的01序列L,她希望第i个参观的展馆(x,y)满足 Tx,y=Li。 小Z想知道有多少条不同的旅行路线能够满足她的要求。 由于最终的结果可能很大,小Z只想知道可行的旅行路线总数mod11192869的值。 【输入文件】 输入文件trip.in第一行包含两个正整数n,m。 第2行至第n+1行,每行有m个01整数,其中第i+1行第j个数表示Ti,j。 第n+2行有n*m个01整数,其中第i个数表示L的值。 【输出文件】 输出文件trip.out仅包含一个整数,表示可行的旅行路线总数mod11192869的值。 【输入样例】 22 10 01 1010 【输出样例】 4【样例说明】这四条可行的旅行路线分别为: (1,1)-(1,2)-(2,2)-(2,1) (1,1)-(2,1)-(2,2)-(1,2) (2,2)-(1,2)-(1,1)-(2,1) (2,2)-(2,1)-(1,1)-(1,2) 【数据规模和约定】 对于10%的数据: n=1; 对于30%的数据: n=2; 对于60%的数据: n=3,其中20%的数据Ti,j全为0;对于100%勺数据: me50,L,T口=0或1。 【运行时限】 10秒。 【运行空限】 512M。 成长快乐 【问题描述】 Nemo是一条无忧无虑的小鱼,它的初始体重为w0。 可爱的Nemo希望自己能够尽快地成长,因此需要吃尽量多的食物。 Nemo最喜爱的食物是海里的小虾。 已知Nemo对食物的情况了解如下: 大海里共有n只小虾,从1到n编号,其中编号为i的小虾的重量为Wi。 将大海看作一个X-Y坐标系,在0时刻编号为i的小虾所在的位置为(Xi,yi)。 小虾在大海中作匀速直线运动,其中编号为i的小虾的速度向量为(pi,qi),即在时刻t, 它的位置为 (Xi+pi*t,yi+qi*t) Nemo在0时刻的位置为(X0,y0),它可以在海中随意移动,但速度不超过V。 Nemo希望通过自己的努力,在T个单位时间内(含T时刻)吃到的小虾重量总和尽量大。 当Nemo与某只小虾同时移动到同一个位置上,且小虾的重量小于Nemo当时的重量,则Nemo可以将该小虾吃掉。 当Nemo吃掉重量为Wi的小虾之后,它的体重将增加Wi。 注意,小虾不会吃Nemo,且小虾之间也不会自相残杀。 Nemo希望你来帮助它制定一个成长计划,使得它吃掉的小虾重量总和尽量大。 【输入格式】 该题为提交答案型试题,所有输入数据nemo1.in~nemo10.in已在试题目录下。 对于每个数据,输入文件中第一行为五个实数wo,V,T,x,yo。 分别表示Nemo的初始体 重、最大移动速度、时间限制以及Nemo在0时刻的位置。 第二行为一个整数n,表示大海中小虾的只数。 接下来n行,每行5个实数,包括Wi,xi,yi,pi,qi,分别表示编号为i的小虾的重量、在0时刻的位置和速度向量。 【输出格式】 针对给定的10个输入文件nemo1.in~nemo10.in,你需要分别提交你的输出文件nemo1.out~nemo10.out。 输出文件第一行包含一个整数k。 表示在你的成长计划中,Nemo将吃到k只小虾。 第二行包含一个实数w,表示在你的成长计划中,Nemo吃到的小虾的重量总和。 接下来k行,每行4个数t,x,y,s。 表示在时刻t,Nemo在位置(x,y)处吃掉了编号为s的小虾。 其中t,x,y为实数,s为整数。 为保证验证程序的精度,所有实数建议至少输出到小数点后6位。 在验证程序中,两个 实数绝对误差不超过10-4时,即视为相等。 【样例输入】 51600 1 52200 【样例输出】 【样例说明】 在这个样例中,Nemo在时刻5在位置(2,2)吃掉了1号小虾。 其实Nemo到达(2,2)的时间可以更早,但题中仅要求速度不超过V即可。 【评分方法】 对于每组数据,我们设置了9个评分参数务0月9,…呂如果选手的输出不合法,则得零 分。 否则,设在你的方案中,Nemo体重的增加量为Wuser,你的分数将会由下表给出: 得分 条件 得分 条件 10 1l? userN门10 5 ^'user—^5 9 ^^user—① 4 Wuser— 8 Wuser— 3 —^3 7 11;user二C? 2 1VUser> 6 "‘US2TNc石 1 "\iserA0 如果有多项满足,则取满足条件中的最高得分。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全国青少年 信息学 奥林匹克 竞赛 NOI 课案