随笔分类 - 数据结构——分块
摘要:"传送门" $div2$那几道题不来做了太水了…… $DPAIRS$ 一个显然合法的方案:$A$最小的和$B$所有连,$A$剩下的和$B$最大的连 算了咕上瘾了,咕咕咕 $DIFNEIGH$ 还能咋样分类讨论吧…… $PARRTY$ 首先这题有两种暴力 一个是每次询问$O(n+m)$的,即枚举区间中
阅读全文
摘要:题面 "传送门" 题解 转化为$dfs$序之后就变成一个区间加,区间查询$k$小值的问题了,这显然只能分块了 然而我们分块之后需要在块内排序,然后二分$k$小值并在块内二分小于它的元素……一个根号两个$\log$很悬啊…… 每次操作的值加上的值不超过$len$一看就有阴谋 因为每次加上的值很小,我们
阅读全文
摘要:"传送门" $CHNUM$ 显然正数一组,负数一组 $SUBPRNJL$ 显然有$m=\left\lceil{k\over r l+1}\right\rceil$,以及选中的数字是$[l,r]$中$sort$之后的第$\left\lceil{k\over m}\right\rceil$个数。区间第$
阅读全文
摘要:题面 "传送门" 题解 orzljz 我们分块,设$s=\sqrt{p}+1$,那么$x^a$可以拆成$(x^s)^{a/s}$和$x^{a\bmod s}$,$O(s)$预处理,$O(1)$计算就可以了
阅读全文
摘要:"传送门" ~~众所周知lxl是个毒瘤,Ynoi道道都是神仙题~~ 用蒲公英那个分块的方法做结果两天没卡过去→_→ 首先我们分块,预处理块与块之间的答案,然后每次询问的时候拆成整块和两边剩下的元素 整块的答案很简单,那么只有两边剩下的元素有可能更新答案 我们对于每一个元素用$vector$记录所有的
阅读全文
摘要:"传送门" ~~虽然洛谷数据水,然而咱最终还是没有卡过uoj上的毒瘤数据……~~ ~~神tm全uoj就3个人过了这题……~~ 首先,每个数最多被开根$6$次,开到$1$之后就别管它了,把它用并查集连到它父亲上 它每次要走$k$步,我们可以对$k$分类讨论,如果$k$比较大就直接暴力跳,否则建$k$棵
阅读全文
摘要:题面 题解 数据结构做傻了.jpg 考虑每一个节点,它的儿子的取值最多只有$O(\sqrt {m})$种,那么可以用一个双向链表维护儿子的所有取值以及该取值的个数,那么对儿子节点修改一个值就是$O(\sqrt{m})$,整体修改可以通过在自己身上打一个标记做到$O(1)$ 然后还要修改父亲,那么可以
阅读全文
摘要:"传送门" 一开始理解错题意了……还以为是两个子序列相同的话只算一次……结果是子序列里相同的元素只算一次…… 对于一个区间$[l,r]$,设其中$x$出现了$k$次,那么它的贡献就是它的权值乘上包含它的序列个数,即$2^{r l+1} 2^{r l+1 k}$,总的序列个数减去不包含它的序列个数。因
阅读全文
摘要:Description Description Input Output Input Input Output Output Sample Input 3 25 3 1 Sample Output 4 Sample Input 3 25 3 1 Sample Input 3 25 3 1 Sampl
阅读全文
摘要:传送门 这最短路的建图怎么和网络流一样玄学…… 一个最朴素的想法是从每一个点向它能到达的所有点连边,边权为跳的次数,然后跑最短路(然而边数是$O(n^2)$除非自创复杂度比spfa和dijkstra还有优秀的做法否则根本过不了) 那么考虑一下分块 把每一座建筑拆成$O(\sqrt{n})$层,第$i
阅读全文
摘要:传送门 题解在此,讲的蛮清楚的->这里 我就贴个代码
阅读全文
摘要:传送门 md调了一个晚上最后发现竟然是空间开小了……明明算出来够的…… 讲真其实我以前不太瞧得起分块,觉得这种基于暴力的数据结构一点美感都没有。然而今天做了这道分块的题才发现分块的暴力之美(如果我空间没有开小就更美了) 我们先将整个数组分块,设块的大小为$T$ 我们先预处理出所有以块边界为端点的区间
阅读全文

浙公网安备 33010602011771号