来宾市网站建设_网站建设公司_云服务器_seo优化
2025/12/28 20:00:47 网站建设 项目流程

CF2172B Buses

首先我们可以转换参考系,以公交车为参考系,问题变成一个追及问题,容易发现最优策略是人不断往终点走,遇到公交车就坐上

\(s-t\) 图(\(s\) 为到终点的距离),那么每辆公交车的速度为 \(0\),相当于一条平行于 \(x\) 轴的线段,终点的运动图像为一条斜率为 \(x\),过原点的直线

考虑人的图像,\(y\) 轴截矩是 \(L - p\),斜率是 \(x - y\),那么,每当这条直线与一条线段相交时,就会沿线段走到末端,再继续上升,直到与 \(s = xt\) 相交,这样就可以递推

所以,我们就要求两个东西:与 \(s - s_0 = (x-y)(t - t_0)\) 相交的纵坐标最小的线段(公交车),以及直线与 \(s = xt\) 的交点

第二个是好求的,来看第一个

设满足条件的线段右端点为 \((a, b)\)

那么,该线段一定高于直线的出发点,即 \(b \ge s_0\)

并且,要有交点,即 \((x-y)(a - t_0) + s_0 \ge b\),移项同构,得 \((x-y)a - b \ge (x-y)t_0 - s_0\)

将每辆公交车对应的线段按纵坐标从达到小排序,\(L_i = (t_i, s_i)\),为线段右端点,记 \(f(i) = (x - y)t_i - s_i\)

那么上述条件等价于求满足 \(j < i, f(j) \ge f(i)\) 的最大的 \(j\),这个可以用单调栈做

于是就可以愉快地递推解决了

CF2171E Anisphia Wynn Palettia and Good Permutations

首先,看到互质,先考虑奇偶性,所以我们考虑让每三个数里面都有两个偶数,即构成

奇 偶 偶 奇 偶 偶 奇 ......

的结构

但是,很容易发现偶数是不够用的,那么具体不够用到什么程度呢?我们可以粗略估计一下

每两个偶数都可以带上一个奇数,所以总共能够带上 \(n / 4\) 个奇数,还有剩下 \(n / 4\) 个数留在末尾

所以,问题在于中间两个数不太够用,这时我们想到,可以寻找偶数的替代品,其实,只要中间两个数有公因数即可,所以可以利用 \(3\) 的倍数。

那么,我们现在可以利用的数就是 \(3\) 的倍数或偶数,这样的数共有约 \(\frac{2}{3}n\) 个,根据上面的分析,一共能带上约 \(n/3\) 个除此之外的数,这样就够了

题目中所说的 \(6\) 个容错位置主要就是给不能刚好匹配够,以及 偶数 与 三的倍数 交界的地方

CF2165C Binary Wine

首先容易发现,每个 \(b_i\) 两两之间一定没有重复的位,这样肯定更优

所以现在就是要把 \(c\) 的每一位分配到一个 \(a_i\) 上,使得总代价最小

首先从大到小考虑有值的位,那么肯定选择最大的数分配给它,这个可以根据邻项交换证明,然后分配后就变成了一个 \(c\) 更小,\(a\) 不同的子问题

那么用优先队列实现就可以了

CF2165B Marble Council

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询