Loading

随笔分类 -  具体问题

上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 48 下一页
摘要:前言 做什么事一定要静下心来 思路 首先考虑 \(m = 2, m = 3\) 时的情况 显然不支持再扫一遍处理 因此需要考虑一些性质 首先考虑枚举前 \(m - 1\) 次区间, 然后最后一次可以将点分为 必须被覆盖 必须不被覆盖 随意 分讨的复杂度显然是 \(\mathcal{O} (n)\) 阅读全文
posted @ 2025-04-20 20:09 Yorg 阅读(12) 评论(0) 推荐(0)
摘要:思路 注意到查找到位置 \(i\) 需要次数固定 考虑如何构造需要查询到位置 \(i\) 的序列 发现只需要在前面放上比 \(x\) 小的数, 然后后面放上比 \(x\) 大的数即可, 显然可以用组合数表示 阅读全文
posted @ 2025-04-18 16:43 Yorg 阅读(12) 评论(0) 推荐(0)
摘要:思路 不难把区间拆成间隔 发现具有单调性但是不好处理删除 于是考虑马鹿尺取\(\textrm{baka's trick}\) 所以实际上 \(l\) 会回退, 输 参考代码 #include <cstdio> using namespace std; typedef long long ll; co 阅读全文
posted @ 2025-04-17 19:41 Yorg 阅读(22) 评论(0) 推荐(0)
摘要:前言 无论如何, 在段中 思路 首先考虑一组 \(\{S_i, T_i\}\) 对, 它们之间必须满足 \(A_{S_i} A_{T_i} = B_{S_i} B_{T_i}\) 最终会形成 \(N - 1\) 个方程 \(B_{S_i}B_{T_i} = A_{S_i}A_{T_i}\), 其中右 阅读全文
posted @ 2025-04-16 12:07 Yorg 阅读(21) 评论(0) 推荐(0)
摘要:前言 要在段中 要在段中 摸完这节课, 开始整段之后一定要在段中 思路 首先是并非求最优解 首先显然有构造方式: 首先对本就满足答案的位置进行赋值, 然后其他的交换一次赋值即可 这样上界是 \(2n - 2\) 次操作, 寄 考虑怎么优化 找点性质 套路 定义操作, 要求把 a→ba \to ba→ 阅读全文
posted @ 2025-04-15 15:53 Yorg 阅读(11) 评论(0) 推荐(0)
摘要:前言 当思维体操了, 顺手尝试一下新的补题方法 思路 首先需要观察到询问序列中的最大值是解决问题的关键 利用这个显然可以 \(\mathcal{O} (1)\) 求出分两段的最优解, 需要计算 \(\rm{RMQ}\) \(\mathcal{O} (n \log n) - \mathcal{O} ( 阅读全文
posted @ 2025-04-13 21:13 Yorg 阅读(11) 评论(0) 推荐(0)
摘要:前言 发现我怎么昨天还在这个学校 思路 不难有 \(\mathcal{O} (n^2)\) 的 \(\rm{check}\) 考虑优化 可以发现我们需要知道任意一个点作为根时, 其不同子树中特殊点的数量 这个东西可以尝试使用值域线段树进行维护, 显然是在树上做线段树合并一类的 这是双 \(\log\ 阅读全文
posted @ 2025-04-13 19:37 Yorg 阅读(18) 评论(0) 推荐(0)
摘要:思路 首先, 发现操作的左右端点在连续段的中间显然不优, 每段可以被视作一个整体 这个较为直观 考虑最大子段和如何求, 不难发现为 \(\max\limits_{c} \textrm{suf}_c + \textrm{pre}_c\) 翻转 \(k\) 次之后怎么求? 不难发现一次翻转可以掏一个遥远 阅读全文
posted @ 2025-04-11 19:10 Yorg 阅读(10) 评论(0) 推荐(0)

上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 48 下一页