译自 ROI 2018 Regional. Day2 T4. Обработка больших данных
某实验室正在研发一种能处理大规模数据的新型超级计算机。
这台超算的内存包含 个存储单元,依次编号为 用内存段 表示编号 且 的所有存储单元,该内存段的长度为
定义:如果内存段 的长度是 的整数次幂(不妨假设是 ),且 是 的整数倍,那么这个内存段是「正确的内存段」。
若 则正确的内存段为 和
现在,每个存储单元所存储的值均为 0. 你需要给每个存储单元赋值。简单起见,我们用游程编码的形式给出每个单元上的值。开头的 个单元中存储的值为 接下来 个单元中存储的的值为 以此类推,最后的 个单元中存储的值为
举个例子,如果 那么内存将被赋值为
你只有一种方法给单元赋值: 该函数表示将内存段 中所有单元全部赋值为 注意, 必须是合法的内存段。
试求至少需要多少次操作才能达成要求。