HBC22601Counting regions,数学Rinne Loves Xor题解

天涯离梦残月幽梦 算法基础篇 50 0
想要检验自己的编程水平?来试试全网最全C++题库,让您在挑战中不断进步。
Rinne 最近学习了位运算相关的知识,她想运用自己学习的知识发明一个加密算法,首先她有一个源数组 A,还有一个密钥数组 B,现在她想生成加密后的数组 C,C_i = C_{i-1} + A_i xor B_i + . 现在她想用程序来实现这个过程,你能帮帮她吗?由于输出可能太大,你只需要输出每个

Rinne 最近学习了位运算相关的知识,她想运用自己学习的知识发明一个加密算法。 首先她有一个源数组 A,还有一个密钥数组 B,现在她想生成加密后的数组 C。 她发明的方法是:当计算 C_i C i ​ 的时候,首先将 C_i C i ​ 赋值为 C_{i-1} C i−1 ​ ,然后加上 A_i A i ​ 分别与每一个满足 j < i 的 B_j B j ​ 异或后的和,然后加上 B_i B i ​ 分别与每一个满足 j < i 的 A_j A j ​ 异或后的和,最后加上 A_i A i ​ 与 B_i B i ​ 的异或和。 形式化的讲,关于 C_i C i ​ 的递推式为以下式子: C_0 = 0 C ​ =0 C_i = C_{i-1} + A_i xor B_i + (sum_{j=1}^{i-1} (A_i xor B_j + A_j xor B_i)) C i ​ =C i−1 ​ +A i ​ xorB i ​ +(∑ j=1 i−1 ​ (A i ​ xorB j ​ +A j ​ xorB i ​ )) 现在她想用程序来实现这个过程,你能帮帮她吗?由于输出可能太大,你只需要输出每个 C_i C i ​ 模 10^9+7 10 9 +7的结果即可。

HBC22601Counting regions,数学Rinne Loves Xor题解
-第1张图片-东莞河马信息技术
(图片来源网络,侵删)
全网最全C++题库,助您挑战自我,突破极限,成为编程领域的佼佼者!

标签: HBC22601Counting regions 数学Rinne Loves Xor题解