1995-2008 历届NOIP试题及详解
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例如:N=6 时,有:
A=(4,3,0,5,1,2)
此时,数组 A 的编码定义如下:
A[0]的编码为 0;
A[i]的编码为:在 A[0],A[1],…,A[i-1]中比 A[i]的值小的个数(i=1,2,…,N-1)
∴ 上面数组 A 的编码为: B=(0,0,0,3,1,2)
程序要求解决以下问题:
③ 给出数组 A 后,求出其编码。 ④ 给出数组 A 的编码后,求出 A 中的原数据。 <2> 灯的排列问题: 设在一排上有 N 个格子(N≤20),若在格子中放置有不同颜色的灯,每种灯的个数记为 N1,N2,……Nk(k 表示不同颜色灯的个数)。 放灯时要遵守下列规则:
b 输入:N=10 B=(0,1,2,3,4,5,6,7,8,9)
输出编码: A=(0,1,2,3,4,5,6,7,8,9)
c 输入:N=7 B=(0,0,0,0,4,5,6)
输出编码: A=(3,2,1,0,4,5,6)
<7> 本题共 30 分(10%+10%+10%)
④ 数据输入: N=6
P1=R
Y
RRR
BB
Y
RRR
BB
Y
RRR
BB
Y
RRR
BB
Y
RRR
BB
Y
RRR
BB
Y
RRR
BB
Y
NOI’95 “同创杯”全国青少年信息学(计算机)奥林匹克竞赛
分区联赛复赛试题(高中组)
(上机编程,完成时间:210 分钟)
<1> 编码问题:
设有一个数组 A:ARRAY[0..N-1] OF INTEGER;
数组中存放的元素为 0~N-1 之间的整数,且 A[i]≠A[j](当 i≠j 时)。
By 2014 年 8 月 15 日(农历二〇一四年七月二十)星期五 东营市胜利一中 梅如歌
OI’95 “同创杯”全国青少年信息学(计算机)奥林匹克竞赛
分区联赛复赛试题(初中组)
(上机编程,完成时间:210 分钟)
<1> 设有下列的算式:
809
------------□□) □□□□
□□
------------□□□
间的整数,且 A[i]≠A[j](当 i≠j 时)。
例如:N=6 时,有:
A=(4,3,0,5,1,2)
此时,数组 A 的编码定义如下:
A[0]的编码为 0;
A[i]的编码为:在 A[0],A[1],……A[i-1]中比 A[i]的值小的个数(i=1,2……N-1)
∴上面数组 A 的编码为:
B=(0,0,0,3,1,2)
2121 2 12 1 2424242
公式:A=B×C-C
2 1212121 应打印出完整的图形:(14 分)
8192 16394 8192 16394 8192
32 16 32 16 32 16
24
2
42
4
2
21 或:
2
12
1
8 16 8 16 8
2
1
公式:A=B×C×C
8 4 84 8 4
2 4 2 42 42
N1=1
Q
排列方案: R
⑤ 排数列据总输数入=:6 N=6 R
P1=R
N1=2 R
P2=Y Q
N2=1 R
R
⑥排数列据方输案入::N=R12 R
Y
R
排列总数=12 P1=RR R N1= 3 Y
P2=RB R N2=2
Y
P3=Y R N3R=1
Y
Q
RR
Y
排列方案:
RR
<8> 本题排共列40总分数(:12%+14%R+14R%) R
② 不同颜色的灯之间至少要有一个空位置。
例如:N=8(格子数) R=2(红灯数) B=3(蓝灯数)
放置的方法有:
R-B 顺序
RR
BBB
RR
BBB
RR
BBB
RR
BBB
RR
BBB
B-R 顺序
RR
BBB
BBB
RR
BBB
RR
BBB
RR
BBB
RR
BBB
RR
放置的总数为 12 种。 数据输入的方式为:
BBB
RR
输出: A=(3,2,1,0,4,5,6)
<5> 本题共 30 分(10%+10%+10%)
① 数据输入: N=6
P1=R
N1=1
Q
排列方案: R ② 排数列据总输数入=:6 N=6 R
P1=R
NR1=2
P2=Y
N2=1 R
Q
R
排列方案: R ③ 排数列据总输数入=:12N=1R2
P1=RR
R
Y
R R N1= 3
N P1(颜色,为一个字母) N1(灯的数量)
P2
N2
……
Q(结束标记,Q 本身不是灯的颜色) 程序要求:求出一种顺序的排列方案及排列总数。
NOI’95 “同创杯”全国青少年信息学(计算机)奥林匹克竞赛
分区联赛复赛测试数据(初中组)
<1> 正确算式如下:8 分
12) 809 9709
① 打印格式占 4% ② 算式不对不给分
程序要求解决以下问题:
① 给出数组 A 后,求出其编码;
② 给出数组 A 的编码后,求出 A 中的原数据。
<5> 灯的排列问题:设在一排上有 N 个格子(N≤20),若在格子中放置有不同颜色的灯,每 种灯的个数记为 N1,N2,……Nk(k 表示不同颜色灯的个数)。 放灯时要遵守下列规则:
① 同一种颜色的灯不能分开;
来的。
计算的方法是:第三层的某个数据 A 是由第四层相邻的两个数据 B,C 经过某种计算后产 生的:
A
BC
计算所用到的计算符为:+,-, ,且无优先级之分(自左向右计算),运算符最多为 2
个。
如:3+4 5=35 5 4+3=23
可以看出,上图中的第三层的数据是由第四层的数据用以下计算公式计算出来的:
BBB
RR
N
P1(颜色,为一个字母) N1(灯的数量)
P2
N2
……
Q(结束标记,Q 本身不是灯的颜色)
程序要求:求出一种顺序的排列方案及排列总数。
<3> 设有一个四层的积木块,1~4 层积木块的数量依次为:5,6,7,8
如下图所示放置:
8 15 8 5 16 9 14
23414326 其中,给出第三层与第四层所标示的数字,并已知第三层的数据是由第四层的数据计算出
第二届全国青少年信息学计算机奥林匹克分区联赛复赛参考答案初中组题号输入输出111012254025400010010001387768776522609661214782421234题号输入输出2141424344112131414141322314221111111123313233343513233343531122334455514233241524414243444546真诚为您提供优质参考资料若有不当之处请指正
Y BB
① 输10入5×2=210 3 4R 4 R4 4R 3 4 B B
1 2R 2 R2 2R 2 1 3B B
应打印出完整的图形R:(R12 分R)
BB
15 1R6 1R6 1R5 4 B B
Y Y Y Y Y
7 8 R 8R 8 R 7 7
BB
Y
3 4 R4 R4 R4 3 4 B B
Y
1 2 2R 2 R 2 R 2 1
提示:文档已分节,可用 word 跳转节功能 本文为本人将 1995-2008 年历届 NOIP 试题、研究成果整理而成,由于“年代久远”所以有不少 资料没有找到。但本人都尽量整理最有价值的信息记录于此。 资料来源皆为网络,若引用请注明出处 一不注意就 208 页了呢~ 其实最初只是想方便自己,看着一下午的成果,就忍不住放到了网络 上。由于赶时间,质量不太好,而且历届 NOIP 的排版也不一样,只是做了粗略的整理、排 版,若有错误之处,敬请谅解。 回首历届 NOIP,甚至比我自己出生的还早的老题,一代代 OIer 就从这条路上走过,作为一个 不大努力的 OIer,我甚至为自己感到愧疚。总之,为了报答一代代出题人、教师、主办方以及 OIer 们,在努力一把也不迟啊。
② 由编码求原数组:共 15 分(5%+5%+5%)
a 输入:N=5 B=(0,0,0,0,0)
输出: A=(4,3,2,1,0)
b 输入:N=10 B=(0,1,2,3,4,5,6,7,8,9)
输出: A=(0,1,2,3,4,5,6,7,8,9)
c 输入:N=7 B=(0,0,0,0,4,5,6)
25 56 79 94 95 96 85 66 39 4
24 55 78 93 100 97 86 67 40 5
23 54 77 92 99 98 87 68 41 6
22 53 76 91 90 89 88 69 42 7
21 52 75 74 73 72 71 70 43 8
20 51 50 49 48 47 46 45 44 9
③ 同一种颜色的灯不能分开;
④ 不同颜色的灯之间至少要有一个空位置。
例如:N=8(格子数) R=2(红灯数) B=3(蓝灯数)
放置的方法有:
R-B 顺序
RR
BBB
RR
BBB
RR
BBB
RR
BBB
RR
BBB
B-R 顺序
RR
BBB
BBB
RR
BBB
RR
BBB
RR
BBB
RR
BBB
RR
放置的总数为 12 种。 数据输入的方式为:
2 1 2 1 212 1
19 18 17 16 15 14 13 12 11 10 <3> 本题 14 分
输出结果为: A 类=538 B 类=462 <4> 本题 30 分(15%+15%)
① 由数组求编码:共 15 分(5%+5%+5%) a 输入:N=6 A=(0,1,2,3,4,5) 输出: B=(0,1,2,3,4,5) b 输入:N=6 A=(5,4,3,2,1,0) 输出: B=(0,0,0,0,0,0) c 输入:N=8 A=(1,0,3,2,5,4,7,6) 输出: B=(0,0,2,2,4,4,6,6)
R
Y Y
P2=B R N2R=2
Y
P3=Y R N3=R1
Y
Q
RR
Y
排列方案: 排列总数: 105×2=210
RRR
BB
Y
RRR
BB
Y
RRR
BB
Y
RRR
BB
Y
RRR
BB
Y
RRR
BB
ห้องสมุดไป่ตู้
Y
RRR
BB
Y
RRR
BB
Y
RRR
BB
Y
RRR
BB
Y
RRR
BB
Y
RRR
BB
Y
RRR
BB
Y
RRR
BB
Y
RRR
BB
Y
RRR
BB
(即可理解为运算符的个数为零) (即全部由 B 产生)
NOI’95 “同创杯”全国青少年信息学(计算机)奥林匹克竞赛
分区联赛复赛测试数据(高中组)
<6> 本题 30 分(15%+15%)
③ 由数组求编码:共 15 分(5%+5%+5%)
a 输入:N=6 A=(0,1,2,3,4,5)
输出编码: B=(0,1,2,3,4,5)
b 输入:N=6 A=(5,4,3,2,1,0)
输出编码: B=(0,0,0,0,0,0)
c 输入:N=8 A=(1,0,3,2,5,4,7,6)
输出编码: B=(0,0,2,2,4,4,6,6)
④ 由编码求原数组:共 15 分(5%+5%+5%)
a 输入:N=5 B=(0,0,0,0,0)
输出编码: A=(4,3,2,1,0)
RRR
② 输入
1 0R 1 R0 1R 0 1
2 1 R2 1R 2 R1 2 1 应打印出完整的图形R(14R分)R
3B B B B公式:A=B+C
Y Y
BB
Y
BB
Y
BB
Y
RRR
BB
Y
RRR
BB
Y
RRR
BB
Y
RRR
BB
Y
1 -1 1 -1 1
0 –1 0 -1 0 -1
101 0 10 1
⑤ 输入
98765
N=6
正整数化为二进制数,在此二进制数中,我们将数字 16 17 18 19 20 1
1
于数字
0
的个数的这类二进制数称为 15 30 31 32 21 2
A
类数,否则就称
数。
14 29 36 33 22 3
(13)10=1(3 1218013)5 234 23 4
的个数为132,207 的26个2数5 为241,5则称此数为 A 类数;
96
109
108
1 <2> 本题 18 分(4%+6%+8%)
① 输入 N=1 (4%) 结果:
② 输入 N=3 (6%) 结果:
1
781
692
543 ③ 输入 N=10(8%)
结果: 28 29 30 31 32 33 34 35 36 1
27 58 59 60 61 62 63 64 37 2
26 57 80 81 82 83 84 65 38 3
□□□
-------------
1 求出□中的数字,并打印出完整的算式来。
<2> 方阵填数:在一个 N N 的方阵中,填入 1,2,……N N 个数,并要求构成如下的格式:
例: <3> 若将一个
的个数多 其为 B 类 例如:
其中 1
其中 1
N=5 13 14 15 16 1 12 23 24 17 2 11 22 25 18 3 10 21 20 19 4
(10)10=1(1 110010)9 2 8 7 6
的个数为 2,0 的个数也为 2,称此数为 B 类数;
(24)10=(11000)2
其中 1 的个数为 2,0 的个数为 3,则称此数为 B 类数;
程序要求:求出 1~1000 之中(包括 1 与 1000),全部 A、B 两类数的个数。
<4> 编码问题:设有一个数组 A:ARRAY[0..N-1] OF INTEGER;数组中存放的元素为 0~N-1 之
A=B C+B 也就是:8=2 3+2,15=3 4+3,……14=2 6+2
程序要求:
给出第四层与第三层的数据后,将第一、二层的每块积木标上相应的数据,并输出整个完
整的积木图及计算公式。
① 输入数据不存在出错的情况,同时也不会超过整数的范围。
② 计算时可允许出现以下情况:
A=B
A=B B+B