T1- 中彩票
题目描述
今天是个好日子 ,小明和小红想买个彩票试一下自己的手气 。他们买的彩票是这样兑奖
的 ,只要买到的彩票号码中包含长度大于等于 2的回文数就判定中奖了 。现在请你编写一个
程序帮小明和小红检查一下他们是否中奖。
提示:回文数指的是从左向右读和从右向左读都是一样的整数。例如 22 是长度为 2的回文
数, 654456 是长度为 6的回文数。
输入格式
共三行。
第一行为一个整数 n,代表小明和小红买到的彩票号码长度。
第二行为小明买到的彩票号码。
第三行为小红买到的彩票号码。
输出格式
只有一个单词 。 若两人均中奖 , 输出 “ All ”; 若小明中奖 , 输出 “ Ming ”; 若小红中奖 ,
输出 “ Hong ”;若两人均未中奖,则输出 “ No ”。
样例输入
6
172275
654321
样例输出
Ming
样例解释
小明的彩票号码中有 7227 这个长度为 4 的回文数, 而小红的彩票号码中没有出现回
文数,所以只有小明中奖了。
数据范围
对于 60% 的数据,保证输入的 n<=10000 ,且彩票号码符合特殊性质 1。
对于 100% 的数据,保证输入的 n<=1000000 ,数据点 7-8 符合特殊性质 2,数据的 9-1 0
无特殊性质。
特殊性质解释
特殊性质 1:彩票号码只有两种情况 ,要么自己本身是一个回文数 ,要么不包含回文数 。
特殊性质 2:彩票号码若包含回文数,则回文数一定在正中间。
T2- 数字游戏
题目描述
小明和小红在做一个数字游戏 。小明写出一个二进制数 ,小红必须交换其中的两个数字
来得出一个新的二进制数(必须进行交换操作且只能交换两个数字 )。小明想知道所有得到
的新二进制数中第二大的数是几 。小红知道怎么计算最大的数 ,但是她不知道怎么计算第二
大的数,你能帮帮她么?
输入格式
共一行 。为小明给出的一个二进制数 ,不包含前导零 。保证所有输入的二进制数通过交
换一定能产生至少两个比原数更大的数字。
输出格式
共一行。为小红执行交换操作后第二大的二进制数。
样例输入
1110011
样例输出
1111001
样例解释
交换后最大的二进制数为 1111010 , 交换的是第四位的 0和第 7位的 1。 第二大的二进
制数为 1111001 ,交换的是第四位的 0和第 6位的 1。
输入解释
如数字 :11110000 ,不论如何交换,交换后一定会变小,这种输入情况不会存在;再比
如数字: 101000 ,交换后只会产生一个比他大的数字 110000 ,无法通过交换得到第二个比
原数字更大的数,这种输入情况也不会存在。
数据范围
对于 30% 的数据,保证输入的二进制数长度 <=10 。
对于 60% 的数据,保证输入的二进制数长度 <=1000 。
对于 100% 的数据,保证输入的二进制数长度 <=1000000 。
T3- 加密通信
题目描述
在一次军事演习中 ,小凯担任通信兵 ,负责解密传来的信息 。他会收到一份 n*n 的数字
表(仅包含 0-9 共 10 种数码 ),和一份 m*m 的字母表(仅包含 A-Z 、 a-z 共 52 种字符 )。
数字表被称为解密卡,字母表被称为加密卡。规定如下名词:
1.覆盖区域 :将数字表和字母表对齐 ,使得数字表在上 ,字母表在下 ,数字与字母一一
对应 ,如果数字表的 1行 1列对应字母表的 x行 y列 ,那么数字表的 1+k 行 1+k 列对应字母
表的 x+k 行 y+k 列 ,此时覆盖区域为字母表以 x行 y列为左上角 、x+n-1 行 y+n-1 列为右下角
的正方形范围 。简单来说 ,根据图片显示 ,若数字表的左上角盖在了 2行 2列的位置 ,则数
字表会覆盖( 2, 2)到( 3, 3)这片区域。
2.有效区域 :称某字母和其在字母表的顺序数字为互相对应 ,字母 A和 a是第 1个字母 、
字母 I和 i是第 9个字母,那么 A、 a和 1对应, I、 i和 9对应,以此类推。如果覆盖区域
的四个顶点字母恰好和原始数字表的四个顶点数字互相对应 ,那么这个覆盖区域称之为有效
区域。
3.数字关联 :0和任何字母关联 ,1不能和任何字母关联 ,2-9 中的质数和大写字母关联 ,
2-9 中的合数和小写字母关联 。 若关联成功 , 则提取出来作为密码的一部分 , 如上图中 2是
质数 , 需关联大写字母 , 2对应的是 B, 关联成功 ; 3是质数 , 需关联大写字母 , 3对应的 c
关联失败 ; 4是合数 , 需关联小写字母 , 而 4对应的是 D, 关联失败 。 因此上述图中 , 本次
覆盖只关联成功一次,提取出一个密码 B。
4. 解密数字表:大小为 n*n ,可以由原始数字表顺时针旋转若干次 90 ° 得到。
5.区域解密 :有效区域和解密数字表对齐 ,从左到右从上到下 ,将和解密数字表中对应
位置数字恰好关联的字母提取出来,构成字符串。
一次解密操作包含以下步骤 :首先从左到右从上到下找出所有有效区域 ,依次进行解密 。
对于每个有效区域首先用原始数字表进行 1次区域解密 ,然后根据当前有效区域的顶点大写
字母数量 x,额外进行 x次区域解密 ( 如图示中四个顶点有两个大写字母 ,因此需旋转两次 ),
第 i次解密时将原始数字表顺时针旋转 i*90 ° 后作为解密数字表再进行区域解密 。最后将所
有区域解密的字符串按序
2024北京中小学信息学能力测评活动(BCSP-X 2024)小高组编程能力题目