随笔分类 - 数据结构---树状数组
摘要:【BZOJ4722】由乃 题面 "bzoj" 题解 考虑到区间长度为$14$时子集个数$2^{14} 14\times 1000$,由抽屉原理,区间长度最多为$13$(长度大于这个值就一定有解)。 那么对于一个区间我们可以暴力背包$dp$出来,然后$bitset$优化下就是$\frac {13\ti
阅读全文
摘要:【CF765F】Souvenirs 题面 "洛谷" 题解 我们可以发现,对于某个右端点$i$,左端点$j$在由$i\rightarrow 1$的过程中,每一段的答案是单调不增的,由这个性质,我们想办法维护出加入右端点$i$后的答案。 我们只考虑形如$ja_i$且$j$最大,这个可以用值域线段树维护。
阅读全文
摘要:【LG3250】[HNOI2016]网络 题面 "洛谷" 题解 30pts 对于$m\leq 2000$,直接判断一下这个个点是否断掉一个交互,没断掉的里面取$max$即可,复杂度$O(m^2\log n)$。 另20pts 对于无删除操作的,用线段树维护, 我们将一条路径的补集全部打上那条路径重要
阅读全文
摘要:题面 "洛谷" 题解 20pts 对于$n,P,Q\leq 3000$,暴力判断每条路径的包含关系然后排序$kth$即可,复杂度$O(PQ\log P)$ 另30pts 原树为一条链。 发现对于每个盘子,也就是区间$x,y$,那么对于包含这个区间的水果$u,v$,要满足$u\leq x\leq y\
阅读全文
摘要:【BZOJ4362】isn 题面 "bzoj" 题解 设$f[i][j]$表示当前在$i$,长度为$j$的最长不降子序列有多少个 这个可以用树状数组$n^2logn$求出 设$g[i]$为长度为$i$的不降子序列的和 则$g[i]=\sum_{j=1}^nf[j][i]$ 最后的答案乍一看是$(n
阅读全文
摘要:【LG4175】[CTSC2008]网络管理 题面 "洛谷" 题解 感觉就和 "普通的整体二分" 差不太多啊。。。 树上修改就按时间添加,用树状数组维护一下即可 代码 cpp include include include include include include using namespac
阅读全文
摘要:【LG2481】[SDOI2011]拦截导弹 题面 "洛谷" 题解 可以看出第一问就是一个有关偏序的$LIS$,很显然可以用$CDQ$优化 关键在于第二问 概率$P_i=$ $总LIS数$ / $经过i的LIS数$ 分别正反跑两遍$CDQ$可以统计出分别以$i$为终点和起点的$LIS$数 乘起来就是
阅读全文
摘要:【LG1975】[国家集训队]排队 题面 "洛谷" 题解 又是一个偏序问题 显然$CDQ$ 交换操作不好弄怎么办? 可以看成两次删除两次插入 排序问题要注意一下 代码 cpp include include include include include include include using
阅读全文
摘要:【LG1393】动态逆序对 题面 "洛谷" 题解 $CDQ$分治,按照时间来分治 应为一个删除不能对前面的操作贡献,所以考虑一个删除操作对它后面时间的操作的贡献 用上一个答案减去次贡献即可 代码 cpp include include include include include include
阅读全文
摘要:【LG1527】[国家集训队]矩阵乘法 题面 "洛谷" 题解 我也不知道为什么取个这样的名字。。。 其实就是区间$kth$扩展到二维 还是用整体二分搞啦,把树状数组换成二维的 其他的基本没有什么差别 复杂度$nlog^3$ 代码 cpp include include include include
阅读全文
摘要:【LG3527】[POI2011]MET Meteors 题面 "洛谷" 题解 整体二分。 每次二分$mid$,如果到时间$mid$以收集过$P_i$就存入子序列$L$,否则存入子序列$R$ 修改可以树状数组区间修改单点查询做 每个王国的掉落地点用$vector$存一下即可 看起来复杂度是平方的实则
阅读全文
摘要:【BZOJ1176】[BOI2007]Mokia 摩基亚 题面 "bzoj" "洛谷" 题解 显然的$CDQ$$/$树套树题 然而根本不想写树套树,那就用$CDQ$吧。。。 考虑到点$(x1,y1)$和$(x2,y2)$区域内既有上限又有下限我们不是很好算 于是将这个区域的贡献写成另外一种形式, 记
阅读全文
摘要:【POJ2104】K th Number 题面 "virtual judge" 题解 其实就是一道主席树$sb$题 但是为了学习整体二分的需要就用整体二分写了。。。 所以主要利用此题讲一下整体二分到底是个啥(以下部分参考李煜东《算法竞赛进阶指南》): 两个例子 $Eg1$ 给定一个正整数序列$A$及
阅读全文
摘要:【LG4169】[Violet]天使玩偶/SJY摆棋子 题面 bzoj权限题呀 "良心洛谷" 题解 cdq分治 其实题目就是说 实时插入点,并且给定点$(x,y)$ 求$min_{i=1}^{n}$${|x x_i|+|y y_i|}$。 我们考虑$cdq$分治,如何做呢? 绝对值很丑,其实可以分别
阅读全文
摘要:【LG4309】【BZOJ3173】[TJOI2013]最长上升子序列 题面 "洛谷" "BZOJ" 题解 插入操作显然用平衡树就行了 然后因为后面的插入对前面的操作无影响 就直接在插入完的序列上用树状数组求下每个点为终点的最长上升子序就行了 然而懒得手写平衡树了 直接用了$rope$ "rope用
阅读全文