上一页 1 2 3 4 5 6 7 8 9 10 ··· 16 下一页
摘要: 好久没写 \(dp\) 老师却开了一场 \(dp\) 基础场 挂的很惨…… T1 Acwing271 观察到 \(k\) 的范围很小。那么我们可以把每一层的状态全部表示出来: 设 \(dp_{i,j,k,l,m}\) 表示五层 按顺序 分别放了 \(i,j,k,l,m\) 个人的方案数。 由于我们已 阅读全文
posted @ 2021-07-06 17:04 Refined_heart 阅读(62) 评论(1) 推荐(0) 编辑
摘要: [国家集训队]middle \(\text{Solution:}\) 考虑一个定区间怎么找中位数。 有一个套路:二分一个答案 \(mid\) ,将大于等于 \(mid\) 的数设为 \(1,\) 其他设为 \(-1.\) 那中位数一定是让区间内的数和为 \(0\) 的数。 关于这里的边界,根据题目要 阅读全文
posted @ 2021-07-04 21:34 Refined_heart 阅读(60) 评论(0) 推荐(1) 编辑
摘要: [SCOI2016]美味 \(\text{Solution:}\) 第一种感觉是可持久化 Trie 的样子。但是如果这样做, \(x\) 的限制是没有办法消去的。 这里陷入了某种错误的思考状态,发现 Trie 上分类讨论无果,从题解中学到了另一种做法: Trie 树的本质是每一个节点下的子树都代表了 阅读全文
posted @ 2021-07-03 11:34 Refined_heart 阅读(27) 评论(0) 推荐(0) 编辑
摘要: Count on a tree \(\text{Solution:}\) 就是一个树上静态第 \(k\) 小。 考虑对于一个点 \(x\) 维护一棵主席树,它的信息是 \([root,x].\) 这样对于一条路径 \(<s,t>\) ,它的信息可以用树上差分的思想来统计: \(cnt=root[s] 阅读全文
posted @ 2021-07-03 08:48 Refined_heart 阅读(28) 评论(0) 推荐(0) 编辑
摘要: Problem \(\text{Solution:}\) 这题唯一需要学习 or 复习的点就是它的查询了。 这东西一眼的维护左右最长连续的 \(0\) 的长度就做完了。标记什么的都很简单。代码量略微大一点。 注意在询问的时候: 如果完全在左右区间,就分别递归。 否则,我们还需要考虑跨越区间的最值。那 阅读全文
posted @ 2021-07-02 23:42 Refined_heart 阅读(33) 评论(0) 推荐(0) 编辑
摘要: Problem \(\text{Solution:}\) 考虑用 fhq_treap 来实现这个东西。 每次的新建版本,我们可以新建一个根,并直接利用 merge 和 split 操作在上一个版本上利用信息。 注意 split 和 merge 中都需要新建节点,否则会影响之前版本的结构。 #incl 阅读全文
posted @ 2021-07-02 23:38 Refined_heart 阅读(49) 评论(0) 推荐(0) 编辑
摘要: [CTSC2018]混合果汁 \(\text{Solution:}\) 题目有三个限制:饮料体积的限制、要求的饮料总体积限制、总价格限制。 首先,美味度最大是我们一定要满足的条件。考虑如何让它变得好维护: 将饮料按照美味度排序,并按顺序建立主席树。 这样,\(root_i\) 所对应的区间 \([1 阅读全文
posted @ 2021-07-02 23:31 Refined_heart 阅读(39) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2021-07-02 23:22 Refined_heart 阅读(0) 评论(0) 推荐(0) 编辑
摘要: Problem \(\text{Solution:}\) 如果一个字符串重排可以构成回文串那么其中出现次数为奇数次的字符一定不超过一个。 第一种思路:对每一个点,每一种颜色分别维护一个权值线段树,以深度为序建立,每次 \(|E|\) 次查询即可。( \(|E|\) 是字符集大小) 战绩: \(\co 阅读全文
posted @ 2021-07-02 09:24 Refined_heart 阅读(36) 评论(0) 推荐(0) 编辑
摘要: 1. 区间最大子段和,区间乘 \(-1,n,m\leq 10^5.\) 考虑维护从左边开始、从右边开始的最大、最小子段和以及区间最大、最小子段和。 乘的时候相乘交换即可。 2. 单点修改,求区间单调栈大小。 楼房重建 的加强版:区间询问。 考虑维护区间信息(合并信息):类比楼房重建的 pushup 阅读全文
posted @ 2021-07-01 16:02 Refined_heart 阅读(73) 评论(0) 推荐(0) 编辑
摘要: Problem \(\text{Solution:}\) 题意很清楚:维护有序三元组 \((a,b,c),a,k\) 已知,使得 \(a,b\in ancestor_c,\text{dis(a,b)}\leq k.\) 观察到 \(c\) 的祖先一定在一条链上。分类讨论一下: 若 \(dep_b<d 阅读全文
posted @ 2021-07-01 09:35 Refined_heart 阅读(35) 评论(0) 推荐(0) 编辑
摘要: Problem \(\text{Solution:}\) 这东西的输入有些新奇,写一个递归函数即可。 观察到题目要求的是子树交换,没有修改。而且,显然地,这样的结构必然要满足对于它每一个子结构都达到最优。而且任意一棵子树内部交换对答案的影响是独立的。 考虑从下往上维护答案,每次需要合并两棵子树的信息 阅读全文
posted @ 2021-06-30 19:08 Refined_heart 阅读(23) 评论(0) 推荐(0) 编辑
摘要: Problem \(\text{Solution:}\) 菜鸡太菜了想了好久没有思路……只知道要求树上链的并集但不知道咋整……虽然题目算法线段树合并和树上差分看到题就能想到……但是怎么做还是有思维难度……(对笔者来说) 看了好久的题解都没有看懂 这次写的详细一点。 所谓矩阵面积并 某些题解中说了一句 阅读全文
posted @ 2021-06-29 19:22 Refined_heart 阅读(39) 评论(0) 推荐(0) 编辑
摘要: Problem \(\text{Solution:}\) 这题看着和 HH的项链 很像。回忆一下: 项链那题我们维护了一个颜色 最右端出现的位置 ,将询问离线排序,每次遇到一个颜色就更新它的位置。 由于询问右端点是递增的,这个做法正确性显然。 那么这个题呢?我们要求一个区间中颜色的次数至少出现两次。 阅读全文
posted @ 2021-06-28 20:22 Refined_heart 阅读(33) 评论(0) 推荐(0) 编辑
摘要: Problem \(\text{Solution:}\) 开始有一种暴力的做法:对每一行维护 \(100\) 个树状数组对应 \(100\) 个颜色。查询枚举行来查询。 复杂度:\(O(m\cdot \log n\cdot q)\) 过不去的样子。 考虑用二维树状数组,直接维护二维矩阵。修改与查询的 阅读全文
posted @ 2021-06-28 15:09 Refined_heart 阅读(41) 评论(0) 推荐(0) 编辑
摘要: Problem \(\text{Solution:}\) 题目求的就是一棵子树中大于根节点权值的节点数。 这东西一看就很权值线段树。 然后发现这东西又很线段树合并。 考虑对每一个点维护一棵权值线段树。这样,我们将子树的信息合并到根的权值树上,就可以做到 \(n\log n\) 合并信息了。 然后对每 阅读全文
posted @ 2021-06-28 10:41 Refined_heart 阅读(25) 评论(0) 推荐(0) 编辑
摘要: ZZ菜鸡犯傻了……被旁边 gzh 神仙秒了并 D 了一番……过来写个题解。 Problem \(\text{Solution:}\) 离散化一下,把式子推一下: \(\sum (a_i-b_i)^2=\sum a_i^2+b_i^2 +\sum a_i\cdot b_i\) 前面两个是定值,要处理最 阅读全文
posted @ 2021-06-28 09:18 Refined_heart 阅读(46) 评论(0) 推荐(0) 编辑
摘要: Problem \(\text{Solution:}\) 记 \(cnt_x\) 表示数 \(x\) 的出现次数。 那么,一个数 \(x\) 能删去的范围应该是: \([x-cnt_x+1,x].\) 考虑一个序列能被删去,当且仅当它的范围被完全覆盖到。 所以最小修改次数就是 没有被覆盖的区间的长度 阅读全文
posted @ 2021-06-27 11:20 Refined_heart 阅读(43) 评论(0) 推荐(0) 编辑
摘要: Problem \(\text{Solution:}\) 分析题目,我们看不到一个房子,当且仅当它的斜率严格不大于前面的房子斜率。 题目让我们求的就是:强制选择出严格单调递增的序列长度最大值,全局询问,单点修改。 看着很线段树,但是区间的信息怎么去合并呢? 开始的思路:首先长度必须要维护,然后维护一 阅读全文
posted @ 2021-06-25 15:11 Refined_heart 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 这种题第一眼看上去不可做,我们考虑证明一个结论: 对于一个区间的 \(Lipschitz\) 常数 \(k\) ,应满足: \(k=\max_{i=l}^{r-1} \left\{\frac{a[i+1]-a[i]}{i+1-i}\right\}\) 即 \(k=\max_{i=l}^{r-1} \ 阅读全文
posted @ 2021-06-25 14:00 Refined_heart 阅读(42) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 10 ··· 16 下一页