1.11模拟赛题解

T1

对于方阵 \(A\),考虑其反方阵 \(A'\)。容易发现 \(A\)\(A'\) 的权值和相同,而其中必有一个与 \(B\) 的差不超过 \(\lfloor\frac{nm}{2}\rfloor\),因此判断一下哪个满足条件即可。

T2

首先大力分类讨论,但我的程序 WA On #8,实在是不知道什么情况没有讨论到了。于是考虑乱搞。定义 \(f(i)\) 表示第一个人经过区间 \([0,i]\),第二个人经过 \([i,n]\) 需要的最小时间。我猜测这个函数是单谷的,写了一个三分。实测可以 AC。时间复杂度 \(O(\log_\frac{3}{2}\dfrac{n}{eps})\)

T3

对所有字符串建 Trie 树,简单树形 DP 即可。

T4

先将 \(a,b\) 排序,易证按顺序吃肯定是最优的。设 \(a_i\) 吃的是 \(b_{k+i}\)

由于旋转方法一定是先顺时针再逆时针,或者先逆时针再顺时针,所以可以先求出 \(a_i\) 顺时针要转的次数 \(x_i\),逆时针要转的次数 \(y_i\)

于是题目转化为:给定 \(k\) 个元素,每个元素有两个属性 \(x\)\(y\),需要把他们划分成两组,使得 \(\max\limits_{i\in S1}x_i+\max\limits_{i\in S2}y_i\) 最小。

\(x\) 排序,枚举 \(x\) 的最大值,可以求出对应的 \(y\) 的最大值。

如果是先顺再逆,那么 \(x\) 需要 \(\times2\),否则 \(y\) 需要 \(\times 2\)

时间复杂度 \(O(k^2\log k)\)

posted @ 2023-01-12 14:59  Egg_eating_master  阅读(30)  评论(0)    收藏  举报