摘要:
题意 给定一个数列。每个数字有一个颜色。 单点修改数字,区间修改颜色。 求: 包含所有颜色的数字和最小的区间 没有重复颜色的数字和最大的区间 数据随机。 Sol 数据随机,直接上珂朵莉树。 跑双指针的时候套个线段树求最大最小区间和就行。 Code #include <iostream> #inclu 阅读全文
摘要:
题意 给你一张无向图。 你可以添加若干条边,然后给所有边定向。 使得每一个点的出入度为偶数。 Sol 出入度为偶数,显然为欧拉环路的充要条件。 考虑对于所有原图度数为奇数的点两两相连。 如果不满足边数为偶数直接连自环即可。 跑一边欧拉环路,对于相邻两条边反向连就行了。 Code #include < 阅读全文
摘要:
题意 给定每列有多少个方块 \(h_i\)。 每次炸掉边缘的方块。 问你几次能把所有方块炸完。 Sol *1600 竟然还开了题解,该退役了。 发现每个方块只会有三种情况影响时间。 设每列的最短时间为 \(v_i\)。 \(h_i\) \(v_{i - 1} + 1\) \(v_{i + 1} + 阅读全文
摘要:
题意 给定 \(n\) 个数。 求最长的子段使得子段内有两个众数。 Sol 考虑全局众数对于子段的众数的影响。 注意到对于答案有贡献的子段一定包含全局众数,读者自证不难。 考虑对于每个数出现的次数根号分治。 对于出现次数大于根号的数: 种类不超过根号。 考虑暴力对于每一种数,考虑她成为众数的情况。 阅读全文
摘要:
题意 有 \(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\) 的贡献。 考虑直链的情况。 注意到一个很显然的东西。 对于一个选择的点,如果她的上方不是端点 阅读全文