上一页 1 ··· 3 4 5 6 7 8 9 10 下一页
摘要: 首先将枚举原排列中的区间转化为枚举值域上的区间。 从小往大对 \(r\) 扫描线,对于每个 \(l\in[1,r)\) 维护将 \([l,r]\) 在原排列中最少要分成多少段。显然只有 \(1\) 或 \(2\) 段才会产生贡献。那么我们用线段树维护值域上的每个 \(l\) 的最小段数,并维护值域区 阅读全文
posted @ 2025-02-20 21:43 zhangxy__hp 阅读(10) 评论(0) 推荐(0)
摘要: 看到“回到 \(x\) 后的状态”,显然考虑可持久化线段树。记开灯的为 \(1\),关灯的为 \(0\),对于每个询问只需去查某些点的权值和即可。 考虑怎么将符合条件的点转化为区间。询问的是同一深度的点,可以考虑 bfs 序。考虑如果 \(y\) 是奇数,显然答案为 \(0\);否则询问的点就是 \ 阅读全文
posted @ 2025-02-17 21:40 zhangxy__hp 阅读(14) 评论(0) 推荐(0)
摘要: A. 【模板】线段树分裂 首先想到了 FHQ-Treap,但是合并的时候还需要满足大小顺序,不太好搞。考虑权值线段树。 \(1\) 到 \(4\) 操作都是比较常规的。对于 \(0\) 操作,在 \(p\) 的线段树上将 \([x,y]\) 这个区间拆成 \(O(\log n)\) 个区间,赋给新的 阅读全文
posted @ 2025-02-15 17:33 zhangxy__hp 阅读(16) 评论(0) 推荐(0)
摘要: A. Alice 和璀璨花 做法和正常 LIS 类似。设 \(dp_{i,j}\) 表示在前 \(i\) 个中选 \(j\) 个的最小结尾显然对于相同的 \(i\),\(dp\) 值单调递增。二分出 \(dp_{i-1}\) 中第一个 \(\ge i\) 的位置 \(k\)。对于 \([0,k-1] 阅读全文
posted @ 2025-02-11 14:47 zhangxy__hp 阅读(169) 评论(0) 推荐(0)
摘要: 新加的点不会影响之前的询问,所以直接离线,先把所有点都建好。 将问题转化为:用 \(b\) 数组减去 \(a\) 数组,得到的形如 \(1,2,3,\dots\) 的等差序列的最大长度。 考虑将两个序列哈希,预处理出等差数列的哈希值,二分长度即可。而在树上维护路径数组的哈希值,可以用倍增解决。 时间 阅读全文
posted @ 2025-02-09 18:09 zhangxy__hp 阅读(22) 评论(0) 推荐(0)
摘要: 考虑一次询问,显然 DP,设 \(f_{u,0/1}\) 表示走路/坐船到 \(u\) 点的最小花费即可。 多次询问,考虑维护矩阵,广义矩阵乘,倍增处理询问。比如对于一条顺流的边 \(i\),可以构造矩阵: \[\begin{bmatrix} a_i&L+a_i-z_i\\ a_i&a_i-z_i 阅读全文
posted @ 2025-02-09 09:42 zhangxy__hp 阅读(23) 评论(0) 推荐(1)
摘要: 设 \(f_{u,i}\) 表示 \(u\) 接受 \(i\) 的信号,\(u\) 的子树内的答案。那么可以枚举 \(u\) 的儿子 \(v\) 接受信号的节点来转移。注意当 \(v\) 也枚举到 \(i\) 时要减去重复的 \(k\)。 考虑构造方案,设 \(ans_u\) 表示答案。首先可以求出 阅读全文
posted @ 2025-02-08 20:55 zhangxy__hp 阅读(13) 评论(0) 推荐(0)
摘要: A. Minimum spanning tree for each edge 先建出最小生成树,对于树边答案就是最小生成树,对于非树边就从两个端点的路径上删掉权值最大的即可。 证明:在这个环中,首先强制选了这条边,然后按照从小到大的顺序选边,则一定不会选到删掉的那条边。 Code #include< 阅读全文
posted @ 2025-02-08 19:14 zhangxy__hp 阅读(30) 评论(0) 推荐(0)
摘要: 分块,设块长为 \(B\),预处理 \(f_{l,r,x}\) 表示仅考虑 \([1,l]\cup[r,\frac{n}{B}]\) 中的玩具,花 \(x\) 元的最大愉悦度。询问时向 \(f_{bel_l-1,bel_r+1}\) 中加入 \(l\) 和 \(r\) 所在块内的玩具即可。\(bel 阅读全文
posted @ 2025-02-08 10:45 zhangxy__hp 阅读(12) 评论(0) 推荐(0)
摘要: 考虑如果没有修改,用 ST 表就非常舒服。 考虑暴力修改,需要修改所有覆盖了这个位置的区间,时间复杂度是 \(O(n)\) 的。 而如果只修改 \(\frac{\log n}{2}\) 层,时间复杂度就是 \(O(\sqrt{n})\) 的。查询时从上往下查,最多查到第 \(\frac{\log n 阅读全文
posted @ 2025-02-07 10:41 zhangxy__hp 阅读(24) 评论(0) 推荐(0)
上一页 1 ··· 3 4 5 6 7 8 9 10 下一页