![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
位运算
HumveeA6
这个作者很懒,什么都没留下…
展开
-
快速乘法(模板)
由于计算机底层设计的原因,做加法往往比乘法快的多,因此将乘法转换为加法计算将会大大提高(大数,比较小的数也没必要)乘法运算的速度,除此之外,当我们计算a*b%mod的时候,往往较大的数计算a*b会超出long long int的范围,这个时候使用快速乘法方法也能解决上述问题. 快速乘法的原理就是利用乘法分配率来将a*b转化为多个式子相加的形式求解(注意这时使用乘法分配率的时候后面的一个乘...原创 2018-02-09 11:47:19 · 532 阅读 · 0 评论 -
快速幂(模板)
对于任何一个整数的模幂运算 a^b%c 对于b我们可以拆成二进制的形式 b=b0+b1*2+b2*2^2+…+bn*2^n 这里我们的b0对应的是b二进制的第一位 那么我们的a^b运算就可以拆解成 a^b0*a^b1*2*…*a^(bn*2^n) 对于b来说,二进制位不是0就是1,那么对于bx为0的项我们的计算结果是1就不用考虑了,我们真正想要的其实是b的非0二进制位 那么假设...原创 2018-02-09 12:06:30 · 191 阅读 · 0 评论 -
CF 472B Mystical Mosaic
刚开始的时候考虑过各种暴力,不过似乎都太复杂了以至于写着写着就出错了或者写不下去了。这题其实有非常简便的做法。对于矩阵中的每一列,如果在该列的某一行处是”#”,那么在选中该列的同时该行也是一定要同时选中的。那么,对于任意的两列i,j,如果他们需要选中的行一样,OK,没问题,这两列可以在同一次选择中被选中。但是,如果i,j需要选择的行不一样,那么他们肯定就不能在同一次中选择了,否则的话这两列肯定会多...原创 2018-03-28 15:49:33 · 338 阅读 · 0 评论 -
洛谷P2761
题目标签写着网络流,但是好像跟网络流啥关系也没有哇qwq…. 关键要看出补丁可抽象为边,错误的各种情况是点,而且错误种类很少,所以可以用二进制状态压缩… 然后关键点就是位运算了....这个一定要想清楚...状态用stand表示,软件必须包含b1,那么就是 stand&b1必须为b1,不能包含b2,那么就是b2&~stand必须等于b2,然后修复问题就是stand&a...原创 2018-04-06 10:40:54 · 184 阅读 · 0 评论