随笔分类 - 数据结构_分块
摘要:分块+Kosaraju+bitset
阅读全文
摘要:题意:给定数列 $a$ 和 $k$ ,询问区间 $[l,r]$ 中有多少子区间满足异或和为 $k$。 莫队。我们可以记录前缀异或值 $a_i$,修改时,贡献为 $c[a_i\bigoplus k]$ 。 2019.11.25
阅读全文
摘要:~~用什么树状数组莫队多帅~~ 思路:树状数组$or$莫队(其实还是推荐树状数组$QwQ$) 提交:~~我告诉你我卡了一会儿常~~ 卡不满原因:没有用奇偶性排序 题解: 莫队: 就是裸的莫队,把询问排序$etc.$ cpp // luogu judger enable o2 include incl
阅读全文
摘要:思路:分块 提交:2次(第一次的求解有问题) 题解: 设块长为$T$,我们开$N/T$个单调栈,维护每一块的上升斜率。 修改时暴力重构整个块,$O(T)$ 求解时记录一个最大斜率$lst$,然后块内二分,求出能看见几个,同时更新$lst$ 时间复杂度$O(N*(T+\frac{N}{T}*log_2
阅读全文
摘要:标准的带修莫队。。。咕到了现在$qwq$ 莫队是对询问排序来优化复杂度的(不带修就是对询问区间$[l,r]$排序)。。 那么现在带修了,我们再可以维护一个时间维度$tm$:对于每个询问,每次回答前先检查时间指针是否与询问的时间对应,不对应则按操作时间修改。 2019.07.03
阅读全文
摘要:这才是真正的$N\sqrt{N}$吧$qwq$ 记录每个数$vl$出现的位置$s[vl]$,和每个数$a[i]=vl$是第几个$vl$,记为$P[i]$,然后预处理出块$[i,j]$区间的答案$f[i][j]$; 对于$[l,r]$,现将$ans$设为$[l,r]$中整块的答案;对于散块,将散块中的
阅读全文
摘要:这道题算是好好写了。写了三种方法。 有一个好像是$qwq$$N\sqrt(N)$的方法,,但是恳请大佬们帮我看看为什么这么慢$qwq$(后面的第三种) 注:$pos[i]$表示$i$属于第$pos[i]$块。 第一种是统计所有可能的块组成的区间中(第i块到第j块),每个数出现的次数,记做$f[i][
阅读全文
摘要:真是道好题。。。感到灵魂的升华。。。 按dfs序建树状数组,拿前缀和去求解散块; 按点的标号分块,分成一个个区间,记录区间子树和 的 总和。。。 具体地,需要记录每个点u修改后,对每一个块i的贡献,记为t[u][i] 计算思路:dfs时,每到一个新的点,就让++c[其所在块],为了记录每个块中的点出
阅读全文
摘要:mdzz....我的-Wall怕不是被吃了。。。快读里面==写成了=。。。。艹。。。调了一中午、、、QWQ我的时间啊。。。 分块:块内排序加tag(就是偏移量),来二分比所求大的位置;散块暴力修改。。。 f我再也不能写错快读了。。。2019.04.23
阅读全文
摘要:(好吧好吧这是LCT裸题)。。。from RYC's 课件 然鹅分块大法好。。。 分成 F(n) 块(至于这个函数怎么写就是你的事了) 块内计算出所有位置在块内能跳的次数cnt,和指向的下一个位置nxt,直接跳到块的末尾,然后进到下一个块;如果跳出块,重新计算cnt和nxt。。。 (记住编号是0-n
阅读全文
摘要:块内按右端点sort,块外按左端点sort 话说我刚开始这么修改。。。 十分暴力?没事不影响复杂度。。 后来看题解发现可以改成这样 十分简练?我数学太菜了。。。 2019.04.12
阅读全文

浙公网安备 33010602011771号