上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 64 下一页
摘要: IV.V.[DBOI2019]德丽莎世界第一可爱 事四维偏序模板 二维偏序我们用BIT,三维偏序我们用CDQ套BIT,四维偏序,可以CDQ套树套树CDQ套BIT。 什么意思? 我们排序排掉第一维。 然后,在第二维上CDQ:当我们要计算 \([l,mid]\) 对 \([mid+1,r]\) 的贡献时 阅读全文
posted @ 2021-04-06 10:48 Troverld 阅读(99) 评论(0) 推荐(0)
摘要: IV.IV.[Ynoi2016] 镜中的昆虫 没错,这里就是CDQ分治 \(O(n)\) 的优势所在了——本题似乎卡掉了空间复杂度为 \(O(n\log^2n)\) 的树套树。 但这不妨碍我继续说:树套树yyds 首先,这里有一个结论:长度为 \(n\) 的序列,修改 \(m\) 次,\(las\) 阅读全文
posted @ 2021-04-06 10:45 Troverld 阅读(119) 评论(0) 推荐(0)
摘要: IV.III.[国家集训队]数颜色 / 维护队列 虽然这里这题的写法是CDQ但是我还是要大声喊出:树套树yyds! 首先,众所周知地,我们可以对于每个位置记录其颜色上一次出现的地方,记作 \(las_i\),则我们需要知道的就是 \([l,r]\) 中 \(las_i<l\) 的总数。 众所周知地, 阅读全文
posted @ 2021-04-06 10:43 Troverld 阅读(88) 评论(0) 推荐(0)
摘要: IV.II.[HNOI2010]城市建设 实际上这题不算狭义上的CDQ分治(先计算左边,再计算左边对右边的贡献,最后计算右边),更像是线段树分治的变种,但是既然大家都认为这就是CDQ那就算是罢…… 考虑分治计算。当我们考虑一个区间 \([l,r]\) 时,我们会将所有边分为两类:区间 \([l,r] 阅读全文
posted @ 2021-04-06 10:41 Troverld 阅读(224) 评论(1) 推荐(1)
摘要: IV.I.[SDOI2011]拦截导弹 我当初为什么要用CDQ分治而不是树套树开这题…… 明显三维偏序。然后一个点的可能性就是前缀路径数乘以后缀路径数除以总路径数。 CDQ分治有一大坨的细节需要处理! 代码: #include<bits/stdc++.h> using namespace std; 阅读全文
posted @ 2021-04-06 10:39 Troverld 阅读(55) 评论(0) 推荐(0)
摘要: III.IV.[HDU3842][WF2011]Machine Works 我们设 \(f_i\) 表示第 \(i\) 台机器被购买时,所剩最多钱数。则 \(f_i=\max\limits_{d_j<d_i}\Big\{f_j+(d_i-d_j-1)g_j+r_j-p_i\Big\}\) 其可被拆作 阅读全文
posted @ 2021-04-06 10:37 Troverld 阅读(81) 评论(0) 推荐(0)
摘要: III.III.CF932F Escape Through Leaf 明显DP式很容易写出;然后观察发现其就是子树中一堆函数 \(y=kx+b\) 中对于某个 \(x\) 的 \(y\) 的最小值,于是线段树合并李超树就OK了。 需要注意的是,李超树因为每个节点都存了一条直线(相当于标记永久化),因 阅读全文
posted @ 2021-04-06 10:35 Troverld 阅读(104) 评论(0) 推荐(0)
摘要: III.II.[SDOI2016]游戏 明显,一条从 \(x\) 到 \(y\) 的路径可以被拆作两条从LCA下来的路径,并且路径上每个点被写上的数是关于其深度的一次函数。 于是就树剖套李超树就行了。 但是有个问题,李超树不是只支持单点询问吗,怎么这里又支持区间了呢? 我们发现,对于一条线段,其与我 阅读全文
posted @ 2021-04-06 10:33 Troverld 阅读(76) 评论(0) 推荐(0)
摘要: III.李超线段树 李超线段树是一种可以维护动态凸包的线段树。更准确地说,其可以支持的常规操作有两种: 在平面直角坐标系中插入一条线段。 询问在坐标系中的一个点 \((x,+\infty)\) 向下看,能看到的点的坐标。换句话说,是一条自无穷高处引下的垂线与所有线段的交点中最高的那个点。 其具体实现 阅读全文
posted @ 2021-04-06 10:32 Troverld 阅读(149) 评论(0) 推荐(0)
摘要: II.I.CF1290E Cartesian Tree 并非一道很板的题,但是是可以被想出的。 考虑把笛卡尔树求出其中序遍历,则每个节点的子树是上面一段区间 \([l_i,r_i]\)。 考虑往中序遍历序列中某个位置 \(p\) 之后插入一个数 \(k\)。显然,依照定义,这个数必定大于原序列中所有 阅读全文
posted @ 2021-04-06 10:30 Troverld 阅读(93) 评论(0) 推荐(0)
上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 64 下一页