QOJ.ac

QOJ

実行時間制限: 1 s メモリ制限: 1024 MB 満点: 100

#5386. 英雄力量

統計

节奏游戏在今年十月似乎迎来了一次复兴,不仅有新的《摇滚乐队》(Rock Band),还有《吉他英雄》(Guitar Hero)游戏推出。Björn 正在准备在《吉他英雄 Live》中取得高分,但他需要你的帮助来计算所有新歌曲的最高得分。显然,这款新游戏有一个叫做“英雄能量”(Hero Power)的东西,但 Björn 打赌它其实和这些游戏中一直存在的“星力”(Star Power,简称 SP)是一回事。

Photo by friskytuna, cc-by-sa

《吉他英雄》的计分方式基本如下:玩家沿着音符轨道前进,每击中一个音符得一分。Björn 对完美表现有着执着的追求;每一个音符都必须被击中!

然而,这里有一个额外的变数:“星力!”——简称为 SP。音符轨道上偶尔会出现一串星形音符。这些连串的音符被称为 SP 乐句(SP phrases)。在 SP 乐句的第一个音符和最后一个音符之间,玩家有能力积攒所谓的 SP 能量槽,它存储了玩家用于积攒能量的时间。你可以从第一个音符的瞬间开始积攒,一直到最后一个音符。你也可以随时暂停积攒,并且不需要在停止积攒后立即使用积攒的 SP,因此可以从多个乐句中累积 SP 能量。

当 SP 能量槽中包含正数秒的能量时,在歌曲的任何时刻——甚至是在击中音符的瞬间——玩家都可以自由激活星力。从这一刻起,SP 能量槽开始消耗,直到完全耗尽。例如,如果它包含 $\pi + \sqrt{7}$ 秒的 SP,则需要 $\pi + \sqrt{7}$ 秒才能完全耗尽。在激活期间,只要 SP 能量槽非空,每个音符的得分都是两分!特别地,如果你在击中音符的瞬间开始激活,该音符就已经值两分;如果你在激活的最后一刻击中音符,该音符只值一分,因为此时 SP 能量槽刚刚耗尽。

激活星力有一个负面影响。如果一次 SP 激活与一个 SP 乐句重叠,且在重叠期间的任何时刻 SP 能量槽中的能量为正,那么该 SP 乐句就会退化为普通音符。特别地,如果你在 SP 能量槽刚好耗尽到 $0$ 的瞬间击中 SP 乐句的第一个音符,该 SP 乐句不会退化。在乐句中间激活是可以的,但乐句的其余部分仍然会受到重叠的影响并消失,因此你无法从该乐句中积攒更多的星力。

你能帮助 Björn 找到最佳策略并计算出他能获得多少分吗?

输入格式

输入的第一行包含两个整数 $1 \le n \le 50\,000$ 和 $0 \le p \le 100$,分别表示音符的数量和 SP 乐句的数量。第二行是一个严格递增的 $n$ 个整数序列 $0 \le t_i \le 50\,000\,000$,表示所有音符的位置(以毫秒为单位)。接下来 $p$ 行,每行包含两个整数 $0 \le s_i < e_i \le 50\,000\,000$,表示第 $i$ 个星力乐句的起始和结束位置。

保证每个 SP 乐句的起始和结束位置上都存在音符。SP 乐句之间互不重叠,且按升序给出。

输出格式

输出最高得分,为一个整数。

样例

输入格式 1

3 1
0 10 20
0 10

输出格式 1

4

输入格式 2

6 1
0 10 20 26 40 50
0 40

输出格式 2

9

输入格式 3

10 2
0 10 20 30 40 50 60 70 80 90
0 40
70 80

输出格式 3

14

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.