1、1NOI95 “同创杯”全国青少年信息学(计算机)奥林匹克竞赛分区联赛复赛试题(初中组) (上机编程,完成时间:210 分钟)设有下列的算式:8 0 9-) -1求出中的数字,并打印出完整的算式来。方阵填数:在一个 N N 的方阵中,填入 1,2,N N 个数,并要求构成如下的格式:2例:若将一个正整数化为二进制数,在此二进制数中,我们将数字1 的个数多于数字 0 的个数的这类二进制数称为 A 类数,否则就称其为 B 类数。例如:(13) 10=(1101) 2其中 1 的个数为 3,0 的个数为 1,则称此数为 A 类数;(10) 10=(1010) 2其中 1 的个数为 2,0 的个数也为
2、 2,称此数为 B 类数;(24) 10=(11000) 2其中 1 的个数为 2,0 的个数为 3,则称此数为 B 类数;程序要求:求出 11000 之中(包括 1 与 1000) ,全部 A、B 两类数的个数。编码问题:设有一个数组 A:ARRAY0N-1 OF INTEGER;数组中存放的元素为 0N-1 之间的整数,且 AiAj(当 ij 时)N=513 14 15 16 112 23 24 17 211 22 25 18 310 21 20 19 49 8 7 6 5N=616 17 18 19 20 115 30 31 32 21 214 29 36 33 22 313 28 35
3、 34 23 412 27 26 25 24 511 10 9 8 7 63。例如:N=6 时,有: A=(4,3,0,5,1,2)此时,数组 A 的编码定义如下:A0的编码为 0;Ai的编码为:在 A0,A1,Ai-1中比 Ai的值小的个数(i=1,2N-1)上面数组 A 的编码为: B=(0,0,0,3,1,2)程序要求解决以下问题: 给出数组 A 后,求出其编码; 给出数组 A 的编码后,求出 A 中的原数据。灯的排列问题:设在一排上有 N 个格子(N20) ,若在格子中放置有不同颜色的灯,每种灯的个数记为 N1,N 2,N k(k 表示不同颜色灯的个数) 。放灯时要遵守下列规则: 同一种颜色的灯不能分开; 不同颜色的灯之间至少要有一个空位置。例如:N=8(格子数)R=2(红灯数)B=3(蓝灯数)放置的方法有:4R-B 顺序R R B B BR R B B BR R B B BR R B B BR R B B BR R B B BB-R 顺序B B B R RB B B R RB B B R RB B B R RB B B R RB B B R R放置的总数为 12 种。数据输入的方式为:NP1(颜色,为一个字母) N1(灯的数量)P2 N2Q(结束标记,Q 本身不是灯的颜色)程序要求:求出一种顺序的排列方案及排列总数。