压位
LowestJN
强省弱OIer
展开
-
[BZOJ2628][压位][Shift-And&Shift-Or]JZPSTR
%%%Hillan学了发Shift-And算法 再手打个Bitset就可以了 #include <cstdio> #include <iostream> #include <string> #include <cstring> #include <algorithm> #define N 2000010using namespace st原创 2017-03-20 23:54:23 · 1121 阅读 · 0 评论 -
[BZOJ3177][Coci2012][压位][阈值]Skakac
考虑f[T][x][y]f[T][x][y]表示在T时刻是否能到达(x,y)(x,y),那么就可以O(Tn2)O(Tn^2)的时间内完成转,因为n<=30,就可以把一列的状态压成一个整数,每次转移就可以通过位运算实现,这样如果没有障碍物,转移就可以O(Tn)O(Tn) 接下来就考虑障碍物的情况,如果Ki,j>1000K_{i,j}>1000那么把在T以内的Ki,jK_{i,j}的倍数记录下来,当T原创 2017-04-17 19:40:28 · 544 阅读 · 0 评论 -
[线段树维护BITSET] NOI2017 .Day1 T1 整数
把数转换成二进制维护 那么进位就是把之后一段连续1变成0,后面的0变成1 退位就是把之后一段连续的0变成1,后面的1变成0 这样可以用线段树维护 有一个nlog2nn\log^2n的暴力,就是把这个数的每一个为1的位取出来,用线段树加进去,a为负的同理如果把原来的01序列压位一下(我压了30位),那么a最多跨2个30位整数,把这两位取出来,拼成一个60位整数,然后把加上去,因为最多进(退)一原创 2017-07-24 12:06:28 · 1830 阅读 · 0 评论 -
[传递闭包 BITSET] 「CodePlus 2017 11 月赛」大吉大利,晚上吃鸡!
建出最短路图—(以下复制自官方题解) 定义 F(X)=F(X) = 从 SS 到 XX 的方案数 ×\times 从 XX 到 TT 的方案数 = 从 SS 经过 XX 到达 TT 的方案数,所以满足条件的点对 A,BA,B 为:F(A)+F(B)=F(T)F(A) + F(B) = F(T) AA 和 BB 不能相互到达对于条件 11 ,我们可以使用数据结构进行优化(使用std::map即可原创 2017-11-27 19:31:03 · 1770 阅读 · 0 评论 -
[BITSET 分块] BZOJ5087. polycomp
陈老师神题×2 因为多项式的系数是0/1,那么可以用bitset压位优化 但是 O(n332)" role="presentation">O(n332)O(n332)O({n^3\over 32}) 不够优 考虑每十位分一个块,令 gS=∑i=09Sibi" role="presentation">gS=∑9i=0SibigS=∑i=09Sibig_{S}=\sum_{i=0}原创 2018-01-28 19:13:09 · 586 阅读 · 0 评论