#P16274. [蓝桥杯 2026 省 C] 二维码存储
[蓝桥杯 2026 省 C] 二维码存储
题目描述
打印机吐出了一张二维码,小蓝正准备将其数据存入嵌入式设备的内存中。
这张二维码是一个 的矩阵,由 行、 列个黑白相间的模块组成。
数据在内存中以“行优先”的方式紧挨着存储:先存第一行,再存第二行,以此类推。每个模块仅需 个二进制位(bit)即可记录: 代表白色, 代表黑色。
然而,这台嵌入式设备的硬件限制非常严格:
- 内存中每一行数据占用的空间大小,必须是 的整数倍(单位:bit)。
因此,在写入内存时需要以行为单位进行 对齐。具体地,二维码每一行包含 个模块,对应 个有效数据位:
- 若 不是 的倍数,则在该行数据进行补位:末尾补若干个 ,使该行在内存中占用的位数变为不小于 的 的倍数;
- 若 恰好是 的倍数,则不需要补位。
补上的 仅作为本行的填充位,计入本行占用空间。下一行不能使用这些填充位。
现在,小蓝想知道,要想存下这张完整的二维码,他至少需要向系统申请多少个字节(Byte)的内存空间?(注:)
输入格式
输入共一行,包含两个整数 和 ,分别表示二维码的行数和每行的模块数。
输出格式
输出一个整数,表示存储该二维码所需的最少字节数。
2 10
8
2 40
16
提示
【样例说明】
样例 1:每行有 个模块。 不是 的倍数,需要补 个 凑成 位。两行共 位,即 字节。
样例 2:每行有 个模块。 不是 的倍数,最近的倍数是 ,需补 个 。两行共 位,即 字节。
【评测用例规模与约定】
对于 的评测用例,;
对于所有评测用例,。