摘要:
题意 有 \(n\) 个工人,\(m\) 个工作。 每个人给每个工作有 \(t_{i, j}\) 的花费。 求每个工作的最小平均花费。 Sol 直接连边跑费用流不好搞。 考虑将每种工人在不同时间做的工作暴力建点。 枚举 \(k\) 表示第 \(i\) 个工人在倒数第 \(k\) 个做 \(j\) 工 阅读全文
摘要:
题意 给定一个矩阵,有两种颜色 \(W\) 和 \(B\)。 你可以花 \(1\) 的代价反转一个包含 \((1, 1)\) 的矩阵。 你可以花 \(3\) 的代价反转一个包含 \((n, 1)\) 的矩阵。 你可以花 \(4\) 的代价反转一个包含 \((1, m)\) 的矩阵。 你可以花 \(2 阅读全文
摘要:
题意 给定 \(n\) 个工作,\(m\) 个机器。 每个工作需要若干机器获得 \(s_i\) 的奖励。 机器可以选择租和买。租只能在当前工作内使用。 Sol 考虑在最大权闭合子图上面改改。 发现直接把工作往汇点连买的权值就完事了。 Code #include <iostream> #include 阅读全文
摘要:
题意 给定一个矩阵,每次询问子矩阵的第 \(k\) 大。 Sol 考虑把莫队扔到二维上来做。 发现复杂度变为:\(O(n ^ 2 q ^ {\frac {3}{4}})\)。 卡卡常就过了。 Code #include <iostream> #include <algorithm> #include 阅读全文
摘要:
题意 给定一个图,走过一条边的花费为权值,其中有 \(k\) 个充电点。 你需要确定一个电量的上限,使得满足从 \(a\) 走到 \(b\)。 Sol 先对于每个点求出她走到充电点最近的距离,用 \(dij\) 随便跑跑。 考虑从 \(a \to b\) 一条边的贡献。设当前的电量上限为 \(c\) 阅读全文
摘要:
题意 给定一棵树,以及 \(m\) 条路径。 让你选出最少的点,使得对于每一条路径,都有一个点距离链上的点离端点更近。 Sol 考虑将每一条路径分为直链和曲链考虑。 注意到所有的曲链最多对答案有 \(1\) 的贡献。 考虑直链的情况。 注意到一个很显然的东西。 对于一个选择的点,如果她的上方不是端点 阅读全文
摘要:
题意 给定一个字符串 \(S\)。 每次等概率随机选择一个为 \(.\) 的位置,随机向左或者向右移动。 走过的位置全部覆盖成 \(<\) 或 \(>\)。 Sol 注意到最终的状态一定是 \(<<<<< ... >>>>>\)。 考虑 \(dp\) 出前缀和后缀的概率。 设 \(f_i\) 表示已 阅读全文
摘要:
题意 有 \(n\) 个工作,每个工作需要一些限制。 你可以花 \(s_i\) 的代价满足一个限制。 然后获得 \(h_i\) 的贡献。 问是的获得的贡献最大可以使多少? Sol 最小割。 从源点往每个实验连 \(h_i\),每个实验往每个代价连 \(inf\). 代价往汇点连 \(s_i\) 就行 阅读全文
摘要:
题意 给 \(n\) 个点两两求最小割,问不同的最小割的数量。 Sol 最小割树。 每次最小割完,对于源点集和汇点集分别再做一遍最小割。 这样递归下去对于每次的源点和汇点连边,边权为最小割的值。 Code #include <iostream> #include <algorithm> #inclu 阅读全文
摘要:
题意 link Sol 考虑不戴限制的情况,那就是对于每一层连到下一层跑网络流。 考虑戴上添边,不难发现向相邻的点连一条 \(inf\) 边就行了。 Code #include <iostream> #include <algorithm> #include <cstdio> #include <a 阅读全文