2018.10.19【校内模拟】加密(模拟)(简单数论)

版权声明:转载请声明出处,谢谢配合。 https://blog.csdn.net/zxyoi_dreamer/article/details/83182806

传送门


解析:

感觉想是好想,就是写起来真的有点痛苦。。。

发现加密的运算只有左移加和右移异或。可以非常方便的逆运算回去,由于是 u n s i g n e d unsigned 类型自然溢出,所以我们自己计算的时候用 l o n g l o n g long long

所有的运算都有逆运算,左移加其实就相当于一个 × 2 x + 1 \times (2^x+1) ,显然在 % 2 32 \%2^{32} 意义下都有逆元。而右移异或其实不会改变最高位上面的值,我们就可以从高位向低位推出运算前的数。具体实现请看代码


code

猜你喜欢

转载自blog.csdn.net/zxyoi_dreamer/article/details/83182806
今日推荐