AT_joig2026final_g かかし 2 (Scarecrows 2)

题目描述

在 JOI 村有一块广阔的农田。这片农田可用无限延伸的 $xy$ 坐标平面表示,$x$ 轴正方向为东,$y$ 轴正方向为北。 村长为了保护农田免受外敌入侵,计划在农田中布置若干稻草人。每个被布置的稻草人,可以根据其放置的位置和朝向,守护平面上的特定区域。 目前共有 $N$ 份布置稻草人的计划,每份计划编号从 $1$ 到 $N$。执行第 $i$ 份计划($1\leq i\leq N$)所需的代价为 $C_i$,内容由整数 $T_i, X_i, Y_i$ 描述,如下: - 当 $T_i = 1$ 时,在点 $(X_i,Y_i)$ 放置一只朝西的稻草人。该稻草人能守护平面上所有满足 $x \leq X_i$ 的区域。 - 当 $T_i = 2$ 时,在点 $(X_i,Y_i)$ 放置一只朝东的稻草人。该稻草人能守护平面上所有满足 $x \geq X_i$ 的区域。 - 当 $T_i = 3$ 时,在点 $(X_i,Y_i)$ 放置一只朝南的稻草人。该稻草人能守护平面上所有满足 $y \leq Y_i$ 的区域。 - 当 $T_i = 4$ 时,在点 $(X_i,Y_i)$ 放置一只朝北的稻草人。该稻草人能守护平面上所有满足 $y \geq Y_i$ 的区域。 村长希望从这 $N$ 份计划中选择若干份执行,用尽可能小的总代价,使得平面上任意一点都至少被 $K$ 个稻草人守护。保证 $N$ 份计划中每个稻草人的放置坐标均不相同。 现在给出所有布置计划的信息,请编程判断是否有办法选择若干计划,使得平面上任意一点都被至少 $K$ 个稻草人守护;如果可以,请输出实现目标的最小总代价。

输入格式

输入按照以下格式从标准输入读入。 > $N\ K$ > $T_1\ X_1\ Y_1\ C_1$ > $T_2\ X_2\ Y_2\ C_2$ > ⋮ > $T_N\ X_N\ Y_N\ C_N$

输出格式

输出为了让平面上每个点都被至少 $K$ 个稻草人守护所需的最小总代价。如果不存在满足条件的计划组合,则输出 $-1$。

说明/提示

## 小子任务 1.($5$ 分)$K=1$,且 $T_i \leq 2$($1 \leq i \leq N$)。 2.($7$ 分)$K=1$。 3.($7$ 分)$K \leq 2$。 4.($22$ 分)$N \leq 15$。 5.($35$ 分)$N \leq 500$,$K \leq 300$。 6.($24$ 分)无附加限制。 --- ## 样例解释 1 例如,如果选择计划 $3, 5$ 执行,稻草人的配置如下: - 计划 $3$:在 $(36,73)$ 放置一只朝西的稻草人,花费 $78$。 - 计划 $5$:在 $(15,49)$ 放置一只朝东的稻草人,花费 $21$。 此时,坐标平面上任意一点都至少被 $1$ 个稻草人守护。例如,点 $(0,0)$ 被由计划 $3$ 在 $(36,73)$ 处朝西布置的稻草人守护。总代价为 $78+21=99$。无法用更小的代价实现目标,因此应输出 $99$。 该输入例满足所有小子任务的约束。 --- ## 样例解释 2 与输入样例 1 仅 $K$ 的值不同。 无法让平面上的每个点都被至少 $3$ 个稻草人守护,因此输出 $-1$。 此输入例满足小子任务 $4, 5, 6$ 的约束。 --- ## 样例解释 3 此输入例满足小子任务 $5, 6$ 的约束。 --- ## 样例解释 4 此输入例满足小子任务 $4, 5, 6$ 的约束。 # 约束条件 - $1 \leq K \leq N \leq 6\,000$。 - $T_i$ 为 $1, 2, 3, 4$ 之一($1 \leq i \leq N$)。 - $0 \leq X_i \leq 10^9$($1 \leq i \leq N$)。 - $0 \leq Y_i \leq 10^9$($1 \leq i < j \leq N$ 时有 $(X_i, Y_i) \neq (X_j, Y_j)$)。 - $0 \leq C_i \leq 10^9$($1 \leq i \leq N$)。 - 输入的所有值均为整数。 由 ChatGPT 5 翻译