NOIP竞赛模拟试题

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

NOIP2016普及组复赛模拟赛试卷

普及组

(请选手务必仔细阅读本页内容)

二.提交源程序文件名

三.编译命令(不包含任何优化开关)

注意事项:

1、文件名(程序名和输入输出文件名)必须使用英文小写。

2、C/C++中函数 main()的返回值类型必须是 int,程序正常结束时的返回值必须是 0。

3、统一评测时采用的机器配置为:CPU P4 3.0GHz,内存 2G,上述时限以此配置为准。

4、特别提醒:评测在Windows下进行,评测软件为cena8.0。

River Hopscotch

(jump.pas/c/cpp)

【问题描述】

每年,奶牛们都举办一种特殊的跳房子游戏,在这个游戏中,大家小心翼翼地在河中的岩石上跳。这个游戏在一条笔直的河中进行,以一块岩石表示开始,以另一块距离起点L单位长度的岩石表示结束。在这两块岩石中间还有N 块岩石,每块的位置距离起点是 Di 个单位长度。

玩这个游戏的时候,每头牛从开始的那块岩石想办法要跳到表示结束的那块岩石上。中间只能在从某块岩石跳跃到另一块岩石,反复的这样跳。当然,不够敏捷的牛永远跳不到终点,最终只能落入河中。

农民 John 为他的牛感到自豪,每年都观看比赛。随着时间的推移,他对于那些胆小的只能跳过很短距离的牛感到厌烦。为了那些牛,其他农民会把岩石的间距弄得很小。他计划移除一些岩石,从而增加奶牛在跳跃时需要的最短距离。他不能移除开始和结束的两块岩石。但是除此之外他可以移除 M 块岩石。

FJ 希望知道他能够增加多少最短跳跃距离。求当他移除了M块岩石后,奶牛从开始跳到结束的岩石,每次跳跃的最短距离至多可以增加到多少。

【输入格式】

第1行: 三个用空格分开的整数,分别是 L, N 和 M。

第2..N+1行: 每行一个整数,表示中间N块岩石的位置,没有两块岩石处于同一位置。

【输出格式】

输出共一行一个整数,表示移除某M块岩石后,相邻岩石间距最小值的最大可能情况。

【输入样例】

25 5 2

2

14

11

21

17

【输出样例】

4

【输入说明】中间有 5 块岩石,坐标 2, 11, 14, 17 和 21。开始岩石在0,结束岩石在25。

【输出解释】没有移除任何岩石之前,最少需要跳2个单位长度,从0到2。当移除了位于 2 和 14的两块岩石后, 需要的最短跳跃距离就变成了4。(从 17 到 21 或从 21 到 25)。

【数据规模】

对于30%的数据: 0≤N≤100;

对于50%的数据: 0≤N≤5,000;

对于100%的数据:1≤L≤1,000,000,000;0≤N≤50,000;0

Big Square

(bigsq.pas/c/cpp)

【问题描述】

农民 John 的牛参加了一次和农民 Bob 的牛的竞赛。他们在区域中画了一个N*N的正方形点阵,两个农场的牛各自占据了一些点。当然不能有两头牛处于同一个点。农场的目标是用自己的牛作为4个

顶点,形成一个面积最大的正方形(不必须和边界平行) 。

除了 Bessie 以外,FJ其他的牛都已经放到点阵中去了,要确定bessie放在哪个位置,能使得农民约翰的农场得到一个最大的正方形(Bessie不是必须参与作为正方形的四个顶点之一)。

【输入格式】

第1行: 一个整数 N;

第2..N+1行: 第 i+1 行描述点阵的第i行,有 N 个字符。字符集是: 'J' 表示这个点是农民 John 的牛, 'B'表示这个点是农民 Bob 的牛,'*' 表示这个点没有被占据。保证至少有一个点没有被占据。【输出格式】

输出共一行一个整数,最大正方形的面积,或者无解的话输出0。

【输入样例】

6

J*J***

******

J***J*

******

**B***

******

【输出样例】

4

输出说明:

如果 Bessie 可以占据农民 Bob 的牛所占的点,那么可以生成一个面积为8的正方形,但是她只能放到第3行第3列,形成一个最大的、面积为 4个正方形。

【数据规模】

对于40%的数据: 1≤N≤35;

对于50%的数据: 1≤N≤55;

对于100%的数据:1≤N≤100;

Bad Hair Day

(badhair.pas/c/cpp)

【问题描述】

农民John的某 N 头奶牛正在过乱头发节!由于每头牛都意识到自己凌乱不堪的发型,FJ 希望统计出能够看到其他牛的头发的牛的总数量。

每一头牛 i 有一个高度 h[i] 而且面向东方排成一排(在我们的图中是向右)。因此,第 i 头牛可以看到她前面的那些牛的头,(即i+1, i+2,等等),只要那些牛的高度严格小于她的高度。

例如这个例子:

=

= =

= = = 牛面向右侧 -->

= = =

= = = = =

= = = = = =

1 2 3 4 5 6

牛#1 可以看到的凌乱发型 #2, 3, 4

牛#2 不能看到任何牛的发型

牛#3 可以看到的凌乱发型 #4

牛#4 不能看到任何牛的发型

牛#5 可以看到的凌乱发型 #6

牛#6 不能看到任何牛的发型!

c[i] 表示第i头牛可以看到发型的牛的数量;请输出 c[1] 至 c[N]的和。

如上面的这个例子,正确解是3 + 0 + 1 + 0 + 1 + 0 = 5。

【输入格式】

第1行: 牛的数量 N。

第2..N+1行: 第 i+1 是一个整数,表示第i头牛的高度。

【输出格式】

输出共一行一个整数,表示c[1] 至 c[N]的和。

【输入样例】

6

10

3

7

4

12

2

【输出样例】

5

【数据规模】

对于40%的数据: 1≤N≤1,000;

对于100%的数据:1≤N≤80,000;1≤h[i] ≤1,000,000,000;

Tallest Cow

(tallest.pas/c/cpp)

【问题描述】

约翰的 N 只奶牛正站在一条直线上接受检阅,她们由1到N编号,每一只奶牛都有一个用正整数表示的身高,你被告知最高奶牛的编号I和身高H,但是其它奶牛的身高就不得而知了。

约翰提供了 R 条信息,每条信息用两个整数a和b表示,意味着a能看到b。也就是说,b的身高不会小于a,而且两只奶牛之间所有奶牛的身高均严格小于a的身高。

对每只奶牛,请计算最大的可能身高。使之不违反给出的信息,数据保证合理的身高一定存在。【输入格式】

第1行输入4个整数.分别表示N,I,H,R;

接下来R行每行输入两个整数a和b。

【输出格式】

输出共N行,第i行表示第i号奶牛的最大可能身高。

相关文档
最新文档