对于方阵 \(A\),考虑其反方阵 \(A'\)。容易发现 \(A\) 与 \(A'\) 的权值和相同,而其中必有一个与 \(B\) 的差不超过 \(\lfloor\frac{nm}{2}\rfloor\),因此判断一下哪个满足条件即可。
首先大力分类讨论,但我的程序 WA On #8,实在是不知道什么情况没有讨论到了。于是考虑乱搞。定义 \(f(i)\) 表示第一个人经过区间 \([0,i]\),第二个人经过 \([i,n]\) 需要的最小时间。我猜测这个函数是单谷的,写了一个三分。实测可以 AC。时间复杂度 \(O(\log_\frac{3}{2}\dfrac{n}{eps})\)。
对所有字符串建 Trie 树,简单树形 DP 即可。
先将 \(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)\)。
标签:顺时针,log,limits,逆时针,题解,复杂度,1.11,模拟 From: https://www.cnblogs.com/Tarantula/p/1-11-p.html