P1068梦的七重回旋dream

时间限制 3000 ms内存限制 512 MiB通过率 —
显示算法标签区间动态规划 · 双指针

【题目背景】

你已经连续六夜回到同一场没有结局的梦。第七夜降临时,散落的梦境片段再次显现,你必须将它们编入两条彼此牵引的梦轨,让这次回旋在醒来前抵达尽可能完整的结局。

【题目描述】

这场梦中共有 nn 个等待编排的片段。第 ii 个片段会在时刻 sis_i 出现,持续 tit_i 个单位时间,并在时刻 si+tis_i+t_i 消散。

你可以将每个片段编入两条梦轨中的任意一条,也可以任由它从梦中消散。每个片段至多被编入一条梦轨。

同一条梦轨能够容纳同时出现的多个片段,因为它们仍然属于同一段梦境。两条梦轨却不能在一段非零长度的时间内同时出现片段,否则两段梦境便会争夺同一刻的意识,使第七次回旋立即破碎。

换言之,分别编入不同梦轨的任意两个片段,都不能在一段非零长度的时间内同时存在。一个片段恰好在另一个片段出现或消散的时刻结束或开始,不会使两条梦轨相互干扰。

对于一种合法的编排方案,设两条梦轨中分别编入了 xx 个与 yy 个片段,定义该方案的平衡度min(x,y)\min(x,y)。你希望让这场梦的平衡度尽可能大。

首先,请你求出没有额外限制时能够达到的最大平衡度

梦境还要求你逐一确认每个片段能否成为这场回旋的一部分。对于每个 1in1\leq i\leq n,请你分别求出在第 ii 个片段必须被编入某一条梦轨时,能够达到的最大平衡度。第 ii 个片段可以被编入任意一条梦轨,其余片段仍然可以被编排或舍弃。

【输入格式】

从文件 dream.in\textbf{\textit{dream.in}} 中读入数据。

本题包含多组测试数据。

输入的第一行包含两个非负整数 c,Tc,T,分别表示测试点编号与测试数据的组数。c=0c=0 表示该测试点为样例。

对于每组测试数据:

第一行包含一个整数 nn,表示片段数量。

接下来 nn 行,第 ii 行包含两个整数 si,tis_i,t_i,分别表示第 ii 个片段出现的时刻与持续时间。

【输出格式】

输出到文件 dream.out\textbf{\textit{dream.out}} 中。

对于每组测试数据,输出 n+1n+1 行。

第一行输出一个整数,表示没有额外限制时能够达到的最大平衡度

接下来 nn 行,第 ii 行输出一个整数,表示第 ii 个片段必须被编入某一条梦轨时能够达到的最大平衡度

【样例 1 输入】

0 158 21 55 33 25 3

【样例 1 输出】

221222

【说明/提示】

【样例 1 解释】

没有额外限制时,可以将第 1,41,4 个片段编入一条梦轨,将第 3,53,5 个片段编入另一条梦轨,并舍弃第 22 个片段。此时两条梦轨中均有 22 个片段,平衡度22

【样例 2】

见选手目录下的 dream/dream2.in\textbf{\textit{dream/dream2.in}}dream/dream2.ans\textbf{\textit{dream/dream2.ans}}

该组样例符合测试点 11 的数据范围。

【样例 3】

见选手目录下的 dream/dream3.in\textbf{\textit{dream/dream3.in}}dream/dream3.ans\textbf{\textit{dream/dream3.ans}}

该组样例符合测试点 232\sim 3 的数据范围。

【样例 4】

见选手目录下的 dream/dream4.in\textbf{\textit{dream/dream4.in}}dream/dream4.ans\textbf{\textit{dream/dream4.ans}}

该组样例符合测试点 4104\sim 10 的数据范围。

【数据范围】

对于 100%100\% 的数据,保证 1T101\leq T\leq 101n2001\leq n\leq 2000si1090\leq s_i\leq 10^91ti1091\leq t_i\leq 10^9。对于同一个测试点,保证 n200\sum n\leq 200

测试点编号TTnnn\sum n
1110\leq 1010\leq 1010\leq 10
232\sim 310\leq 1040\leq 4040\leq 40
4104\sim 1010\leq 10200\leq 200200\leq 200

【评分方式】

本题采用特殊判题方式。

若输出格式不正确,包括输出的整数数量不足或多于要求,则该测试点得 00 分。

在输出格式正确的前提下,记以下两个条件分别为 A 与 B:

  • A:所有测试数据中,没有额外限制时的答案均正确。
  • B:所有测试数据中,每个片段必须被编入某一条梦轨时的答案均正确。

若 A、B 均满足,则该测试点取得全部分值。若只有 A 满足,则该测试点取得 40%40\% 的分值。若只有 B 满足,则该测试点取得 60%60\% 的分值。若 A、B 均不满足,则该测试点得 00 分。

【题解】

已公开 1 篇题解,官方题解会优先显示。

查看题解