QOJ.ac

QOJ

実行時間制限: 1.0 s メモリ制限: 512 MB 満点: 100 ハック可能 ✓

#17635. 奥林匹克竞赛前的焦虑

統計

在进入一场信息学奥林匹克竞赛之前,有 $n$ 名参赛者排队等待入场,编号从 $1$ 到 $n$。已知每分钟会有一名参赛者按编号顺序被邀请进入赛场。第一分钟第一名参赛者进入,第二分钟第二名参赛者进入,以此类推。因此,第 $i$ 名参赛者会在入场流程开始后的 $i$ 分钟进入赛场。

每位参赛者在赛前都有一定的焦虑值。每位参赛者的焦虑值由一个整数(可能是负数)给出。在入场流程开始前,第 $i$ 名参赛者的焦虑值为 $a_i$。每过一分钟,该参赛者的焦虑值会改变 $b_i$。因此,在入场流程开始 $x$ 分钟后,第 $i$ 名参赛者的焦虑值等于 $a_i + x \cdot b_i$。

Alexander 是一位经验丰富的心理学家,他决定安抚等待入场的参赛者。为此,Alexander 会与参赛者交谈并安抚他们。他与每位参赛者交谈的次数不超过一次。与 Alexander 交谈后,参赛者的焦虑值变为 $0$,且之后不再改变。Alexander 与第 $i$ 名参赛者工作的有效性被定义为与 Alexander 交谈时刻该参赛者的焦虑值。因此,如果 Alexander 在入场流程开始 $t_i$ 分钟后与第 $i$ 名参赛者交谈,则有效性等于 $a_i + t_i \cdot b_i$。注意,如果参赛者的焦虑值为负,则有效性也为负。

Alexander 将按编号顺序与参赛者工作。然而,Alexander 不必与所有参赛者交谈,这意味着他可能不会与队列末尾的参赛者交流。注意,Alexander 与每位参赛者交谈不超过一次,且必须在参赛者进入赛场之前进行。同时,Alexander 每分钟可以与多名参赛者同时交流。更正式地说,Alexander 的工作流程描述如下:

  • Alexander 总共会与队列中的前 $k$ 名参赛者交谈,其中 $k$ 由他选择。
  • 对于前 $k$ 名参赛者中的每一位,我们确定一个非负整数 $t_i$ —— 与 Alexander 交谈的时间。注意 $t_i$ 可以等于 $0$,这意味着 Alexander 在第一名参赛者被允许进入赛场之前就与第 $i$ 名参赛者交谈了。
  • 对于每个 $1 \le i \le k$,满足 $t_i < i$,因为 Alexander 必须在参赛者进入赛场前与他们交谈。
  • 对于每个 $1 \le i \le k - 1$,满足 $t_i \le t_{i+1}$,因为 Alexander 按编号顺序与参赛者交谈。
  • Alexander 与参赛者交流的总有效性由以下公式描述: $$\sum_{i=1}^{k} (a_i + t_i \cdot b_i)$$

Alexander 有一个预先确定的工作计划。工作计划由 $n$ 个整数 $p_1, p_2, \dots, p_n$ 给出。对于每个 $i$,如果 $p_i \neq -1$,则在第一批 $i$ 名参赛者被允许进入赛场时(即入场流程开始 $i$ 分钟后),Alexander 必须已经与前 $p_i$ 名参赛者交谈过,且没有与其他人交谈。在这种情况下,保证 $p_i \ge i$。如果 $p_i = -1$,则意味着在入场流程开始 $i$ 分钟后,Alexander 必须与之工作的参赛者数量没有限制。

更正式地,如果 $p_i \neq -1$,则: $p_i \ge i$; $t_{p_i} < i$; * 对于任何满足 $p_i < j \le k$ 的 $j$,满足 $t_j \ge i$。

帮助 Alexander 确定在满足所有约束条件的情况下,他工作的最大可能总有效性。保证答案总是存在的。

输入格式

第一行包含一个整数 $n$ ($1 \le n \le 10^6$),表示等待入场的参赛者人数。

接下来的 $n$ 行,每行包含两个整数 $a_i$ 和 $b_i$ ($-10^9 \le a_i \le 10^9, -10^6 \le b_i \le 10^6$),表示第 $i$ 名参赛者的焦虑参数。

最后一行包含 $n$ 个整数 $p_1, p_2, \dots, p_n$ ($i \le p_i \le n$ 或 $p_i = -1$),表示 Alexander 的工作计划描述。

保证对于任何 $1 \le i < j \le n$,若 $p_i \neq -1$ 且 $p_j \neq -1$,则 $p_i \le p_j$。

输出格式

输出一个整数,表示 Alexander 工作的最大可能总有效性。

样例

输入格式 1

4
3 -6
4 -10
-7 -3
-3 6
3 3 -1 -1

输出格式 1

15

说明

在第一个测试样例中,最优选择是 $k = 4$ 且 $t = \{0, 0, 0, 3\}$。此时总有效性为: $(3 + 0 \cdot (-6)) + (4 + 0 \cdot (-3)) + (-7 + 0 \cdot (-3)) + (-3 + 3 \cdot 6) = 15$

输入格式 2

4
-6 -1
-5 14
0 10
-30 2
2 3 -1 -1

输出格式 2

-1

说明

在第二个测试样例中,最优选择是 $k = 3$ 且 $t = \{0, 0, 1\}$。此时总有效性为: $(-6 + 0 \cdot (-1)) + (-5 + 0 \cdot 14) + (0 + 1 \cdot 10) = -1$

输入格式 3

4
-6 -1
-5 14
0 10
-30 2
-1 -1 -1 -1

输出格式 3

23

说明

在第三个测试样例中,最优选择是 $k = 3$ 且 $t = \{0, 1, 2\}$。此时总有效性为: $(-6 + 0 \cdot (-1)) + (-5 + 1 \cdot 14) + (0 + 2 \cdot 10) = 23$

评分

本题包含十四个测试组。仅当通过某组的所有测试点且通过了部分前置测试组时,才能获得该组的分数。注意,对于某些组,通过样例测试不是必要条件。离线评测意味着该组的测试结果仅在比赛结束后可见。每组的最终得分为所有提交中该组测试所获得的最高分。

组别 分值 $n$ $b_i$ $p_i$ 前置组 备注
0 0 样例测试
1 6 $n \le 100$ $p_i = -1$
2 6 0-1
3 7 $n \le 5000$ $p_i = -1$ 1
4 6 0-3
5 7 $b_i \le 0$ $p_i = -1$
6 5 5
7 7 $b_i \ge 0$ $p_i = -1$
8 5 7
9 9 $b_i \le b_{i+1}$ $p_i = -1$
10 8 9
11 10 $n \le 100000$ $p_i = -1$ $b_i > 0$ 不超过 10 个
12 7 11
13 9 $p_i = -1$ 1, 3, 5, 7, 9, 11 离线评测
14 8 0-13

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.