摘要:
算法 初步分析 对于一个点从 \((1, 1)\) 到 \((m, n)\) , 显然是好求的 但是本题中出现了两个路径, 朴素的想法是 : 先跑一遍从左上到右下的最大贡献, 标记已经跑过的点, 再从右下到左上时排除这些点 但是正确性如何呢? 显然是错误的, 观察到对于某些图, 贪心的求可能会将某些 阅读全文
摘要:
一般的转化不等式 + 建图 + 判断负环不加赘述 图是否连通 如果图不连通, 那么证明约束条件并不能全部约束 有两种办法解决这个问题 建超级源点 将每个点作为起点跑 求 dis 的最大值 / 最小值 对于 Intervals 最后考虑求 \(dis\) 的差最大值 对于 Layout G , 和 C 阅读全文
摘要:
算法 差分约束 观察到 \(a_i\) 最后是确定唯一的 + 我是从差分约束专题来的 ,考虑对于 \(a_i\) 的约束条件进行差分约束。 转化约束条件 观察到, \[\left\{ \begin{array}{lr} b = 0, \lvert {a_u - a_v} \rvert = 1, & 阅读全文
摘要:
算法 因为这题是从差分约束专题来的, 所以肯定要朝着化为不等式的方向化简 令 \(TimeW_i, TimeD_i, TimeL_i\) 表示原串前 \(i\) 位中 \(W, D, L\) 的个数 令 \(W_i, D_i, L_i\) 表示最后结果中前 \(i\) 位 \(W, D, L\) 的 阅读全文
摘要:
算法 设 \(dis_i\) 表示第 \(i\) 头奶牛的坐标 题目转化为 对于 \(M_L\) 对数对 \((A_i, B_i) , A_i < B_i\) , 使得 \(dis_{B_i} - dis_{A_i} \leq D_i\) 对于 \(M_D\) 对数对 \((A_i, B_i) , 阅读全文
摘要:
算法 对于一棵树的情况, dfs + 贪心选取显然是正确的 对于基环树的情况 我们观察到城市不能重复行走 所以长为 \(L\) 的环最多只会被访问 \(L - 1\) 条边 枚举断边, 再跑 dfs + 贪心即可 代码 #include <bits/stdc++.h> const int MAXN 阅读全文
摘要:
算法 观察到把每个 \(a_i\) 向 \(i\) 连边, 形成一个外向基环树森林 问题转化为 在一个基环树上, 选择一个点后, 其儿子节点至少有一个不能选, 求最大选点个数 对于森林中的每一棵基环树 容易想到找环, 对于环上每一点, 问题转化为树上的上述问题 显然是树形 dp 令 \(f_{x, 阅读全文
摘要:
T1 对题目分析不够彻底, 浪费了大量时间 代码冗杂, 思路不够优秀 注意猜结论的能力 T2 正解问题 转化成经典贪心问题之后没有想到 实力不够 赛后看考场上打的计算超速区间的代码也不够完善(或者是其它问题?) 修出贪心后只打到了 \(90pts\) , 实现能力也有问题 部分分问题 \(n, m 阅读全文
摘要:
前言 很难蚌的一次考试, 很难确定是实力问题还是什么 算法 事实上是可以看出是 dp 题的 令 \(f_{i, j}\) 为考虑到 \(i\) 位的答案, 当前颜色为 \(j\), \(j \in {0, 1}\) 令 \(last_i\) 表示 \(i\) 位前第一个与 \(i\) 位颜色相同的 阅读全文
摘要:
题面 自出题 挂个 pdf 题面下载 算法 矩阵加速 dp 阅读全文