luogu#P12188. [蓝桥杯 2025 省 Java A/研究生组] 变换数组

[蓝桥杯 2025 省 Java A/研究生组] 变换数组

题目描述

输入一个数组 aa,包含有 nn 个元素 a1,a2,,ana_1, a_2, \cdots, a_n。对这个数组进行 mm 次变换,每次变换会将数组 aa 中的每个元素 aia_i 转换为 aibitCount(ai)a_i \cdot \text{bitCount}(a_i)。其中 bitCount(x)\text{bitCount}(x) 表示数字 xx 的二进制表示中 11 出现的次数,例如 bitCount(3)=2\text{bitCount}(3) = 2,因为 33 的二进制表示为 1111,其中 11 出现了两次。

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

输入格式

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

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \cdots, a_n,相邻整数之间使用一个空格分隔。

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

输出格式

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

2
5 7
2
20 63

提示

样例说明

  • 5=(101)25 = (101)_27=(111)27 = (111)_2,第一次变化后 a=[10,21]a = [10, 21]
  • 10=(1010)210 = (1010)_221=(10101)221 = (10101)_2,第二次变换后 a=[20,63]a = [20, 63]

评测用例规模与约定

  • 对于 30%30\% 的评测用例,1n101 \leq n \leq 10
  • 对于 60%60\% 的评测用例,1n1001 \leq n \leq 100
  • 对于所有评测用例,1n1031 \leq n \leq 10^30m50 \leq m \leq 50ai10000 \leq a_i \leq 1000