P14410 [JOISC 2015] 钥匙 / Keys

题目描述

你知道 Just Odd Inventions 公司吗?该公司的业务是“仅仅奇妙的发明(just odd inventions)”,在此简称为 JOI 公司。 JOI 公司有 $N$ 名员工,编号从 1 到 $N$。所有员工在时刻 0 到时刻 $M$ 之间工作,时刻 0 和时刻 $M$ 时,所有员工必须在公司内部。 今天,巧合的是,每位员工恰好外出一次。员工 $i$($1 \le i \le N$)在时刻 $S_i$ 离开公司,在时刻 $T_i$ 返回公司。没有任何两名员工在同一时刻进出公司。 JOI 公司入口处有一扇大门,员工只能通过这扇门进出公司。门上装有锁,锁可以处于开启或关闭状态。公司内部人员可以自由开关锁,但公司外部人员只能由持有钥匙的人开关锁。在时刻 0,门锁处于关闭状态。 每位员工在返回公司时,必须能够进入公司。也就是说,对于任意员工 $i$($1 \le i \le N$),必须满足:员工 $i$ 持有钥匙,或者在时刻 $T_i$ 时门锁处于开启状态,二者至少满足其一。当员工返回公司时,以及持有钥匙的员工离开公司时,可以选择是否关闭门锁。没有钥匙的员工离开公司时,不允许关闭门锁。 JOI 公司的社长决定将钥匙交给 $K$ 名员工。为了避免钥匙丢失,员工之间不能互相传递钥匙。此外,JOI 公司的社长重视工作效率,因此员工除了自己进出公司时,不得随意开关门锁。 出于安全考虑,社长希望在工作时间 $M$ 内,门锁关闭的总时间尽可能长。 ### 题目 给定员工的进出时间信息,以及被授予钥匙的员工数量 $K$,编写一个程序,求在合理管理门锁开关的情况下,门锁在工作时间 $M$ 内关闭的总时间的最大值。

输入格式

从标准输入读入以下数据: - 第一行包含三个整数 $N, M, K$,以空格分隔。表示 JOI 公司有 $N$ 名员工,所有员工在时刻 0 到时刻 $M$ 之间工作,其中 $K$ 名员工将被授予钥匙。 - 接下来的 $N$ 行,第 $i$ 行($1 \le i \le N$)包含两个整数 $S_i, T_i$,以空格分隔。表示员工 $i$ 在时刻 $S_i$ 离开公司,在时刻 $T_i$ 返回公司。

输出格式

在标准输出上,输出一行,表示在工作时间 $M$ 内,通过合理管理门锁开关,门锁关闭的总时间的最大值。

说明/提示

在该输入输出示例中,JOI 公司有 4 名员工,其中 2 名员工被授予钥匙。若将钥匙交给员工 2 和员工 4,并按以下方式操作,则门锁关闭的总时间为 13: - 时刻 0,门锁处于关闭状态。 - 时刻 3,员工 1 离开公司。由于员工 1 未持有钥匙,无法关闭门锁。 - 时刻 5,员工 2 离开公司,并关闭门锁。 - 时刻 6,员工 3 离开公司。由于员工 3 未持有钥匙,无法关闭门锁。 - 时刻 10,员工 3 返回公司,门锁保持开启状态。 - 时刻 11,员工 1 返回公司,并关闭门锁。 - 时刻 12,员工 4 离开公司,并关闭门锁。 - 时刻 15,员工 2 返回公司,并关闭门锁。 - 时刻 18,员工 4 返回公司,并关闭门锁。 - 时刻 20 之前,门锁一直处于关闭状态。 门锁关闭的总时间无法超过 13,因此输出 13。 ### 数据范围 所有输入数据满足以下条件: - $1 \le N \le 2000$ - $1 \le M \le 1000000000$ - $1 \le K < N$ - $0 < S_i < T_i < M$($1 \le i \le N$) - 对任意 $i, j$($1 \le i \le N, 1 \le j \le N, i \ne j$),满足 $S_i \ne S_j, S_i \ne T_j, T_i \ne T_j$ ### 子任务 #### 子任务 1 [10 分] - $N \le 20$ - $M \le 1000000$ #### 子任务 2 [90 分] 无额外限制。 翻译由 Qwen3-235B 完成