#P17199. [KOI 2026 #2] 工厂

    ID: 19515 远端评测题 1000ms 1024MiB 尝试: 0 已通过: 0 显示难度省选/NOI− 上传者: 标签>Special Judge2026KOI(韩国)

[KOI 2026 #2] 工厂

题目描述

某工厂计划从第 00 天夜间运行到第 TT 天夜间。工厂每天的工作分为白天时段和夜间时段。按时间顺序,共分为第 00 天夜间、第 11 天白天、第 11 天夜间、第 22 天白天、第 22 天夜间、……、第 TT 天白天、第 TT 天夜间,共 2T+12T+1 个时段。每个白天进行日间生产,每个夜间进行夜间警戒。

为了使工厂运行,需要从 NN 名应聘者中选出并雇用若干名员工。第 ii(1≤i≤N1 \le i \le N)名应聘者的熟练度为 AiA_i,贡献度为 BiB_i,且所有应聘者的熟练度互不相同。若雇用第 ii 名应聘者,则该员工会在第 Di−1D_i-1 天夜间、第 DiD_i 天白天和第 DiD_i 天夜间这三个时段工作,并获得基本工资 CiC_i。也就是说,每名被雇用的员工会参加两次夜间警戒和一次日间生产。

每个时段的工作按如下方式进行:将该时段工作的所有员工按照熟练度从小到大排成一列,再从队首开始依次两两配对。也就是说,如果共有 2k2k 名员工,则对于每个整数 jj(1≤j≤k1 \le j \le k),队列中的第 2j−12j-1 人与第 2j2j 人组成一组。

所有工作都必须以两人一组的形式进行。因此,必须选择员工,使得每个时段工作的人数均为偶数。允许某个时段没有员工工作,此时该时段不会进行任何工作。

每一组员工会根据所执行的工作产生如下结果:

  • 日间生产:白天,每组员工运行一条生产线制造产品,并改变工厂的总生产利润。具体而言,若熟练度满足 Ax>AyA_x>A_y 的第 xx、第 yy 名应聘者组成一组,则总生产利润增加 Bx−ByB_x-B_y。请注意,这个值可能为负数。
  • 夜间警戒:夜间,每组员工巡查工厂内部,并获得夜间补贴。具体而言,若熟练度满足 Ax>AyA_x>A_y 的第 xx、第 yy 名应聘者组成一组,则两人合计获得 Ax−AyA_x-A_y 的夜间补贴。

工厂开始运行前(第 00 天夜间之前),工厂的总生产利润为 00。

工厂支付的总工资等于所有被雇用员工的基本工资之和,加上所有夜间支付的夜间补贴之和。

给定 NN 名应聘者的信息,请合理选择要雇用的员工,求可获得的“(总生产利润)−-(支付的总工资)”的最大值,并输出此时雇用的员工名单。

输入格式

第一行依次给出两个以空格分隔的整数 NN 和 TT。

接下来的 NN 行给出 NN 名应聘者的信息。其中第 ii(1≤i≤N1 \le i \le N)行依次给出四个以空格分隔的整数 Ai,Bi,Ci,DiA_i,B_i,C_i,D_i,表示第 ii 名应聘者的信息。

输出格式

第一行输出“(总生产利润)−-(支付的总工资)”的最大值。

第二行输出要雇用的员工人数 KK。

第三行以任意顺序输出 KK 名要雇用员工的编号,编号之间以空格分隔。当 K=0K=0 时,可以输出空行,也可以不输出这一行。

如果存在多种可行输出,输出其中任意一种均视为正确。

6 2
21 0 1 1
13 25 0 2
22 20 3 2
20 5 2 2
4 23 0 2
25 16 8 1
7
4
1 3 4 6
5 2
40 23 10 1
59 22 2 2
32 7 10 2
52 30 0 1
38 10 3 1
0
0
12 3
6 19 4 2
32 0 1 3
12 0 4 3
25 7 0 2
35 15 5 1
28 25 5 2
19 27 3 3
30 13 3 2
1 24 5 3
20 11 0 2
2 1 5 2
24 28 3 2
20
8
1 3 4 6 7 10 11 12

提示

样例 1 解释

雇用在第 11 天白天工作的第 11、第 66 名应聘者,以及在第 22 天白天工作的第 33、第 44 名应聘者是最优的。

  • 第 11 天白天,第 11 名和第 66 名员工组成一组,总生产利润增加 B6−B1=16B_6-B_1=16。
  • 第 22 天白天,第 44 名和第 33 名员工组成一组,总生产利润增加 B3−B4=15B_3-B_4=15。

因此,总生产利润为 16+15=3116+15=31。

  • 第 00 天夜间,第 11 名和第 66 名员工组成一组,支付 A6−A1=4A_6-A_1=4 的夜间补贴。
  • 第 11 天夜间,四名员工全部工作。按熟练度顺序排列为第 44 名(A4=20A_4=20)、第 11 名(A1=21A_1=21)、第 33 名(A3=22A_3=22)、第 66 名(A6=25A_6=25)。第 44 名与第 11 名、第 33 名与第 66 名分别组成一组。该夜支付的夜间补贴为 (A1−A4)+(A6−A3)=1+3=4(A_1-A_4)+(A_6-A_3)=1+3=4。
  • 第 22 天夜间,第 33 名和第 44 名员工组成一组,支付 A3−A4=2A_3-A_4=2 的夜间补贴。

因此,夜间补贴总额为 4+4+2=104+4+2=10。

支付的总工资为基本工资 1+3+2+8=141+3+2+8=14 加夜间补贴 1010,共计 2424;最终“(总生产利润)−-(支付的总工资)”为 31−24=731-24=7。

请注意,在此样例中,第 11 天白天和第 11 天夜间的分组并不相同。

样例 2 解释

不雇用任何人是最优的。

限制条件

  • 给出的所有数均为整数。
  • 1≤T≤N≤5001 \le T \le N \le 500
  • 对于每个整数 ii(1≤i≤N1 \le i \le N),0≤Ai≤1 0000 \le A_i \le 1\,000。
  • 对于每个整数 ii(1≤i≤N1 \le i \le N),0≤Bi≤1 0000 \le B_i \le 1\,000。
  • 对于每个整数 ii(1≤i≤N1 \le i \le N),0≤Ci≤1 0000 \le C_i \le 1\,000。
  • 对于每个整数 ii(1≤i≤N1 \le i \le N),1≤Di≤T1 \le D_i \le T。
  • A1,A2,⋯ ,ANA_1,A_2,\cdots,A_N 两两不同。

子任务

  1. (1313 分)N≤20N \le 20。
  2. (1414 分)T=1T=1。
  3. (2020 分)T≤10T \le 10。
  4. (2222 分)对于每个整数 dd(1≤d≤T1 \le d \le T),满足 Di=dD_i=d 的应聘者不超过 88 名。
  5. (3131 分)没有额外限制。