NOI’95“同创杯”全国青少年信息学(计算机)奥林匹克竞赛分区联赛复赛试题(高中组)(上机编程,完成时间:210分钟)编码问题:设有一个数组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中的原数据
灯的排列问题:设在一排上有N个格子(N≤20),若在格子中放置有不同颜色的灯,每种灯的个数记为N1,N2,……Nk(k表示不同颜色灯的个数)
放灯时要遵守下列规则:①同一种颜色的灯不能分开;②不同颜色的灯之间至少要有一个空位置
例如:N=8(格子数)R=2(红灯数)B=3(蓝灯数)放置的方法有:R-B顺序RRBBBRRBBBRRBBBRRBBBRRBBBRRBBBB-R顺序BBBRRBBBRRBBBRRBBBRRBBBRRBBBRR放置的总数为12种
数据输入的方式为:NP1(颜色,为一个字母)N1(灯的数量)P2N2……Q(结束标记,Q本身不是灯的颜色)程序要求:求出一种顺序的排列方案及排列总数
设有一个四层的积木块,1~4层积木块的数量依次为:5,6,7,8如下图所示放置:815851691423414326其中,给出第三层与第四层所标示的数字,并已知第三层的数据是由第四层的数据计算出来的
计算的方法是:第三层的某个数据A是由第四层相邻的两个数据B,C经过某种计算后产生的:ABC计算所用到的计算符为:+,-,,且无优先级之分(自左向右计算),运算符最多为2个