3337 问题 A: 蓝桥杯2025年第十六届省赛真题-变换数组

 时间限制: 1s 内存限制: 128MB
题目描述

输入一个数组 a ,包含有 n 个元素 a1, a2, · · · , an 。对这个数组进行 m 次 变换,每次变换会将数组 a 中的每个元素 ai 转换为 ai · bitCount(ai) 。其中 bitCount(x) 表示数字 x 的二进制表示中 1 出现的次数,例如 bitCount(3) = 2 , 因为 3 的二进制表示为 11 ,其中 1 出现了两次。 

请输出变换之后的数组内容。

输入

输入的第一行包含一个正整数 n ,表示数组 a 中的元素个数。 

第二行包含 n 个整数 a1, a2, · · · , an ,相邻整数之间使用一个空格分隔。 

第三行包含一个整数 m ,表示变换次数。

输出

输出一行,包含 n 个整数,相邻整数之间使用一个空格分隔,表示变换之 后得到的数组 a 。

样例输入

2
5 7
2

样例输出

20 63
提示

【样例说明】 

5 = (101)2 ,7 = (111)2 ,第一次变化后 a = [10, 21] 。

10 = (1010)2 ,21 = (10101)2 ,第二次变换后 a = [20, 63] 。

对于 30% 的评测用例,1 ≤ n ≤ 10 ; 

对于 60% 的评测用例,1 ≤ n ≤ 100 ; 

对于所有评测用例,1 ≤ n ≤ 103 ,0 ≤ m ≤ 5 ,0 ≤ ai ≤ 1000 。

比赛公告

2025年第十六届蓝桥杯软件赛省赛C/C++研究生组真题

试题 A: 数位倍数 (本题总分:5 分) 

【问题描述】 

请问在 1 至 202504 (含)中,有多少个数的各个数位之和是 5 的整数倍。 例如:5 、19 、8025 都是这样的数。 

【答案提交】 

这是一道结果填空题,你只需要算出结果后提交即可。本题的结果为一个 整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。


试题 B: IPv6 (本题总分:5 分) 

【问题描述】 

小蓝最近在学习网络工程相关的知识。他最近学习到,IPv6 地址本质上是 一个 128 位的二进制数,而字符串形式的 IPv6 地址是由被冒号分开的八段 16 进制数组成的, 例如,下面每行是一个字符串形式的 IPv6 地址: 

0000:0000:0000:0000:0000:0000:0000:0000 

0000:0001:0000:0000:0000:0001:0000:0000 

0000:0001:00ab:0000:0023:0000:0a00:0e00 

0000:0000:00ab:0000:000a:0001:0a00:0e00 

0000:0000:00ab:0000:0000:0001:0a00:0e00 

其中,每一段最长 4 位,且每一段的前导零都可以去掉(如果 4 位都为 0 需要写成 0)。 

另外,IPv6 地址还可以将其中相邻的值为 0 的段合并压缩起来,用两个冒 号来表示,不过只能压缩一段。 

例如上述地址最短的压缩后的形式分别为 

:: 

0:1::1:0:0 

0:1:ab::23:0:a00:e00 

::ab:0:a:1:a00:e00 

0:0:ab::1:a00:e00 

小蓝想知道, 所有 IPv6 地址的最短压缩形式的长度的和为多少?由于答案 很大(甚至超过了 128 位二进制整数的范围),请填写答案时填写这个总和除以 109 + 7 的余数。


【答案提交】 

这是一道结果填空题,你只需要算出结果后提交即可。本题的结果为一个 整数(在 0 到 109 + 6 的范围内),在提交答案时只填写这个整数,填写多余的 内容将无法得分。