1 条题解
-
0
自动搬运
来自洛谷,原作者为

vegetable_king
全身全霊!MORE MORE JUMP!!搬运于
2025-08-24 23:11:03,当前版本为作者最后更新于2025-03-17 11:52:45,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
最构式的一集。
下面定义原题中输入的八个变量依次为 。
不考虑多边形面积非零这条限制,我们相当于是在统计自然数八元组 ,满足:
- 被 偏序(不一定严格);
- $a \cdot (0, 1) + b \cdot (-1, 1) + c \cdot (-1, 0) + d \cdot (-1, -1) + e \cdot (0, -1) + f \cdot (1, -1) + g \cdot (1, 0) + h \cdot (1, 1) = (0, 0)$。
最后将答案减去 $\min(a, e) + \min(b, f) + \min(c, g) + \min(d, h) + 1$ 即可。
跳过一些推导,我们可以得到:
将其改写成下列形式:
$$P = e - a, X = b - f, Q = g - c, Y = d - h\\ X - Y = P\\ X + Y = Q\\ $$定义 为满足 的自然数对 个数,那么有 $calc(A, B, x) = \max(\min(A, B - x) + \min(0, x) + 1, 0)$。
令 $f_a(x) = calc(E, A, x), f_b(x) = calc(B, F, x), f_c(x) = calc(G, C, x), f_d(x) = calc(D, H, x)$,那么对于一对 ,答案为 ,可以 计算,那么我们枚举 即可做到 。
考虑少枚举一维。 显然是一个只有 段的分段一次函数,对于一个确定的 ,定义 ,那么 是一个只有 段的分段三次函数,它的断点由 的断点平移后合并得到。考虑对每一段做个插值就能快速算出一段的 之和。这样对于一个确定的 ,可以 计算 ,那么我们枚举 即可做到 。
继续优化。定义 ,我们尝试用类似的方法优化之。可以感觉到, 应该是一个只有 段的分段五次函数 ( 是三次,求和后变成四次,乘上 变成五次,如果不知道具体是几次的话试试就好了),同时它的断点应该就是 的断点的相对位置改变的所有点与 断点合并的结果,原因大概是当 的断点相对位置不变时我们可以简单刻画出 的变化。具体证明应该也是可以的,但是比较麻烦。
的断点会随着 的增加向右移动, 的断点反之, 的断点则不动。那么我们可以枚举每对断点求出它们碰撞的时间,再加上 的所有断点,来得到 的所有断点。对于每一段再跑一次插值即可做到 ,但是带一坨常数。
- 1
信息
- ID
- 11670
- 时间
- 2000ms
- 内存
- 256MiB
- 难度
- 7
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者