摘要:
题意 给定一个字符串 \(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 阅读全文
摘要:
题意 给定一张无向图。其中某些边只能走 \(2\) 次。 你要从 \(a_1\) 走到 \(a_2\) \(a_n\) 次,\(b_1\) 走到 \(b_2\) \(b_n\) 次。 问是否能实现。 Sol 不难想到连边跑网络流。 但是,只能走 \(2\) 次的限制无法满足。 注意到是无向图,所以我 阅读全文
摘要:
题意 给定一个 \(n * m\) 的矩阵。 你需要将其中每一个元素分成两个集合。 当一个元素的集合为 \(A\),获得 \(a_{i, j}\)。集合为 \(B\),获得 \(b_{i, j}\)。 当一个元素与她相邻的所有元素都在同一个集合,获得 \(c_{i, j}\) 或 \(d_{i, j 阅读全文
摘要:
题意 你有 \(n\) 个糖果,第 \(i\) 个的价值为 \(a_i\)。 每次操作可以选 \(1\) 或 \(2\) 个糖果。 问在所有的方案中,\(1\) 个或 \(2\) 个糖果的价值之和的最大值和最小值之差最小是多少。 Sol 很有趣的诈骗题。 首先套路的,考虑将选一个的情况变为选一个 \ 阅读全文
摘要:
题意 维护一个序列 \(s\),有以下操作。 区间加。 区间覆盖。 求 \(l\) 到 \(r\) 的第 \(k\) 小元素。 求 \(l\) 到 \(r\) 的每个元素的 \(x\) 次方之和膜 \(y\)。 输入由给定种子 随机 生成。 Sol 珂朵莉树。 本质上就是拿 \(set\) 乱搞。 阅读全文
摘要:
题意 给定序列,每次交换两个数。询问逆序对个数。 Sol 暴力草过去了。 分块的做法等会来补。 Code #include <iostream> #include <algorithm> #include <cstdio> #include <array> #define int long long 阅读全文
摘要:
题意 有 \(n\) 个商店。每个商店有 \(m\) 个物品。每个物品的价值为 \(b_{i, j}\)。每种物品只能被购买一次。 你可以选择一个起点,在任意商店结束购买。获得的价值为 \(m\) 个物品之和减去路程。 求最大可获得的价值。 \(n \le 5e3, m \le 200\) Sol 阅读全文