全国信息学奥林匹克分区联赛(NOIP)复赛提高组试题第1页共55页第一届全国信息学奥林匹克分区联赛(NOIP1995)复赛试题(提高组竞赛用时:3
5小时)1、编码问题设有一个数组A:ARRAY[0
N-1]OFINTEGER;数组中存放的元素为0~N-1之间的整数,且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)程序要求解决以下问题:①给出数组A后,求出其编码
②给出数组A的编码后,求出A中的原数据
2、灯的排列问题设在一排上有N个格子(N≤20),若在格子中放置有不同颜色的灯,每种灯的个数记为N1,N2,……Nk(k表示不同颜色灯的个数)
放灯时要遵守下列规则:①同一种颜色的灯不能分开;②不同颜色的灯之间至少要有一个空位置
例如:N=8(格子数);R=2(红灯数);B=3(蓝灯数),放置的方法有:R-B顺序RRBBBRRBBBRRBBBRRBBBRRBBBRRBBBB-R顺序BBBRRBBBRRBBBRRBBBRRBBBRRBBBRR第2页共55页放置的方法总数为12种
数据输入的方式为:NP1(颜色,为一个字母)N1(灯的数量)P2N2……Q(结束标记,Q本身不是灯的颜色)程序要求:求出一种顺序的放置(排列)方案及放置(排列)方案总数
3、积木块上的数字设有一个四层的积木块,1~4层积木块的数量依次为:5,6,7,8,如下图所示放置:815851691423414326其中,给出第三层与第四层所标示的数字,并已知第三层的数据是由第四层的数据计算出来的
计算的方法是:第三层的某个数据A是由第四层相邻的两个数据B,C经过某种计算后