随笔分类 - 具体问题 / 基础算法 / 贪心
摘要:思路 场上考虑的其实很有道理来着 考虑左右字符集已经相同的情况是简单的 否则一定要把左右字符集调整到相同 那我们首先不难发现一个至少要使用的区间, 计算方法比较复杂, 但是宗旨是把左右字符集调整到相同且可匹配的必要花费 然后我们应该拓展长的那一端, 直到字符集相同之后可以考虑断开, 以此来获得最优解
阅读全文
摘要:思路 发现把有向图的可达性当成偏序集来看的话 本题求最大的链, 等价于求最小的反链划分 显然可以 \(\mathcal{O} (n^22^n)\) 的找每个集合是否能构成反链, 也即能否两两不可达 等价于找任意两个没有直接的无向边相连的集合 求划分是一个经典的超集 \(\rm{dp}\), 是 \(
阅读全文
摘要:思路 考虑 \(G = 1\) 因为进入顺序是不确定的, 怎么计算期望呢? 首先先列出期望相关的柿子 \[ \begin{gather*} E = \sum_{i = 1}^{n} \sum_{j = i + 1}^{n} \begin{cases} 1/2 & (\overrightarrow{i
阅读全文
摘要:前言 心态 策略: \(30\) 停滞不超过 \(15\) 数据检验, 关键步记录, 时刻简化 思路 首先考虑排序方法 对于赚钱的部分, 显然按照 \(a\) 排序 对于损失的部分, 考虑记这一部分为 \(a_{1, 2, \cdots, k}, b_{1, 2, \cdots, k}\), 记 \
阅读全文
摘要:前言 本来说看看算了的, 这个太猎奇了必须想一下 思路 这种询问是一个区间的, 确实不好搞 先不管询问区间 考虑 \(x\) 是有单调性的, 从这里入手 如果我们钦定 \(x_j\), 现在要找到 \(\min\limits_{i < j} (x_j - x_i)(w_i + w_j)\), 怎么做
阅读全文
摘要:思路 不妨令 \(a < b\) 首先不难发现根据 \(\rm{kruskal}\) 的思想, 显然应该是所有边权为 \(a\) 的边先加入, 再加入 \(b\) 的边 考虑这个过程 先把所有边权为 \(a\) 的边加入之后的图实际上也不是确定的, 但是我们可以知道产生的联通块情况, 然后再在联通块
阅读全文
摘要:思路 不难发现我们可以讨论中轴线的位置 如果在 \(A/E\) 在这里面, 我们的目标是让红色的这一段尽可能更好匹配, 也就是我们要找中轴线两侧最长的回文串+在这个基础上找到最长的黄段 否则在 \(C\) 不难发现此时我们 \(\mathcal{O} (n)\) 枚举中轴线, \(\mathcal{
阅读全文
摘要:前言 这题赛时是过了的, 非常磕磕绊绊, 在这理一下 思路 首先题解做法 不难发现每次落脚只可能是在萝卜或者大跳的位置 其中「大跳的位置」是不好维护的 这个时候我们发现只要指定要在哪些位置落脚, 大跳的数量是可以确定的, 于是这样列出 \(\rm{dp}\), 用一些技巧优化 然后我的做法比较神奇
阅读全文
摘要:前言 题解只是资料好吧 注意效率利用率 思路 首先, 我们不难发现模拟的方法 只要当前蛇吃了之后, 自己被吃了, 那么它一定不会吃了 进行一些模拟 不难发现相当于先让每条蛇都吃, 然后倒着做, 只要当前做出选择的这个蛇没有被吃, 那么就继续上传, 否则熔断, 传输当前阶段的答案 瓶颈在于空间复杂度
阅读全文
摘要:思路 \[ \begin{gather*} \sum_{i = 1}^{N - 1} \sum_{j = i + 1}^{N} \lvert x_j - x_i \rvert \\ \end{gather*} \]发现这不就是点对距离之和吗? 对贡献柿子进行一些处理 提取出 \(x_i\) 放到 \
阅读全文
摘要:思路 \(80\%\) 应该是原题弱化, 先不管 考虑怎么解决最终状态数过多的问题 找点性质 考虑转移过程中, 余数 \(r\) 相当于是在一个图上跑, 那么不难发现最小的位数是任意非 \(0\) 点到 \(0\) 的最短路 简单对最短路经过的字典序做贪心即可 总结 有大量循环的, 尝试图论表示减少
阅读全文
摘要:思路 \(w\) 全为 \(0\) 显然可贪 考虑 \(w = 1\) 的情况 这显然不能背包 做法 \(1\) 注意到任何 \(2^w\) 可以视作 \(2^w\) 个 \(2^0\), 然后贪心 完全无法理解啊, 太超模了/kk 做法 \(2\) 首先一个性质是如果你还能放一个货物那你一定要放进
阅读全文
摘要:思路 首先直接 \(\rm{dp}\) 不行 注意到倘若我们钦定一个点对产生贡献, 那么我们可以任选一个合法的数填上, 然后这个数被废弃 进一步的发现要填的数必定是 \(1 \sim x\) 的, 而且点对的开头应该尽可能在前面选, 结尾尽可能在后面选 合一下 考虑 \(\textrm{pre}_i
阅读全文
摘要:思路 需要找点性质 直接贪显然假了 考虑有没有什么固定的最优解 注意到一种方案是 对于 \(a_i, a_{i + 1}\), 我们可以通过交换这俩然后再吃一个 \(a_{i + 1}\) 来超过 \(i\) 因此最优解有这样的构造方式 首先将整个 \(a\) 分成若干段, 然后在其中找一个元素,
阅读全文
摘要:前言 状态不佳 一定要做实事 思路 首先考虑分析问题 加入 / 删除三元组 \(\{F_i, T_i, B_i\}\), 每次操作后, 求 \(\sum_{i = 1}^{k} |T_i (F_i - f) + B_i|\) 的最小值 首先这样一类自己可以确定一个变量的问题, 不难想到函数转化 具体
阅读全文
摘要:前言 要在段中 要在段中 摸完这节课, 开始整段之后一定要在段中 思路 首先是并非求最优解 首先显然有构造方式: 首先对本就满足答案的位置进行赋值, 然后其他的交换一次赋值即可 这样上界是 \(2n - 2\) 次操作, 寄 考虑怎么优化 找点性质 套路 定义操作, 要求把 a→ba \to ba→
阅读全文
摘要:前言 当思维体操了, 顺手尝试一下新的补题方法 思路 首先需要观察到询问序列中的最大值是解决问题的关键 利用这个显然可以 \(\mathcal{O} (1)\) 求出分两段的最优解, 需要计算 \(\rm{RMQ}\) \(\mathcal{O} (n \log n) - \mathcal{O} (
阅读全文
摘要:前言 我是人吗? 我到底是人吗? 最大的问题仍然是利用率 补题方法需要改进, 其他的动不动无所谓, 可以等一手大佬指导 思路 给定两个长为 \(2n\) 的序列 \(a, b\), 需要将 \(1 \sim 2n\) 不重拆分成 \(n\) 个二元组 \(\{x_i, y_i\}\) 一种拆分的威力
阅读全文
摘要:前言 参数一多脑子就睡觉 阿达西捧油, 你滴脑子浆糊一样的时候, 不妨听一下雄鹰一样男人的话 思路 首先分析问题, 发现这个背包看起来比较的恐怖, 于是我赛时弃掉了背包做法, 并且死活找不到 \(c_i \mid c_{i + 1}\) 怎么用 赛后发现其实分析问题做的还行, 找性质就很不对了 首先
阅读全文

浙公网安备 33010602011771号