CF1839B.Lamps

传统题 时间 2000 ms 内存 256 MiB 5 尝试 1 已通过 1 标签

Lamps

题目描述

你有 nn 盏灯,编号为 11nn。每盏灯 ii 有两个整数参数 aia_ibib_i

每一时刻,每盏灯有三种状态:开、关或损坏。

初始时所有灯都是关闭的。每次操作,你可以选择一盏关闭的灯将其打开(不能打开已损坏的灯)。打开第 ii 盏灯你会获得 bib_i 分。每次操作后会发生以下情况:

  • 设当前被打开的灯的数量为 xx(不计损坏的灯)。所有满足 aixa_i \le x 的灯 ii 会同时损坏,无论它们是开着还是关着。

请注意,损坏的灯不计入已打开的灯数量,并且一旦已打开的灯损坏,你仍然保留因打开它获得的分数。

你可以进行任意次数的操作。

请你求出你能获得的最大分数。

输入格式

第一行包含一个整数 tt1t1041 \le t \le 10^4),表示测试用例的数量。

每个测试用例的第一行包含一个整数 nn1n21051 \le n \le 2 \cdot 10^5),表示灯的数量。

接下来的 nn 行,每行包含两个整数 aia_ibib_i1ain,1bi1091 \le a_i \le n, 1 \le b_i \le 10^9),分别表示第 ii 盏灯的参数。

保证所有测试用例中 nn 的总和不超过 21052 \cdot 10^5

输出格式

对于每个测试用例,输出一个整数,表示你能获得的最大分数。

说明/提示

在第一个测试用例中,n=4n=4。一种获得最大分数的方法如下:

  • 你先打开第 44 盏灯,获得 b4=13b_4=13 分。
  • 当前被打开的灯数量为 11,所以所有 ai1a_i \le 1 的灯(即第 223344 盏灯)会损坏。第 44 盏灯不再计入已打开的灯,所以当前被打开的灯数量变为 00
  • 你只能打开第 11 盏灯,其余灯已损坏。你打开第 11 盏灯获得 b1=2b_1=2 分。
  • 当前被打开的灯数量为 11。由于 a1=2a_1=2,第 11 盏灯不会损坏。

你总共获得 13+2=1513+2=15 分。可以证明这是最大分数,所以第一个测试用例的答案是 1515

在第二个测试用例中,一种获得最大分数的方法如下:

  • 第一次操作你打开第 44 盏灯,获得 22 分。第一次操作后没有灯损坏。
  • 第二次操作你打开第 33 盏灯,获得 55 分。此时有 22 盏灯被打开。由于 a32a_3 \le 2,第 33 盏灯损坏。
  • 第三次操作你打开第 11 盏灯,获得 44 分。
  • 第四次操作你打开第 55 盏灯,获得 33 分。此时有 33 盏灯被打开:第 114455 盏灯。由于 ai3a_i \le 3,第 11224455 盏灯同时损坏。

你总共获得 2+5+4+3=142+5+4+3=14 分。可以证明这是最大分数。

在第三个测试用例中,一种获得最大分数的方法如下:

  • 打开第 33 盏灯,获得 44 分。第 1133 盏灯损坏。
  • 打开第 22 盏灯,获得 44 分。
  • 打开第 66 盏灯,获得 33 分。第 66 盏灯损坏。
  • 打开第 44 盏灯,获得 44 分。
  • 打开第 55 盏灯,获得 55 分。第 224455 盏灯损坏。

你总共获得 4+4+3+4+5=204+4+3+4+5=20 分。可以证明这是最大分数。

由 ChatGPT 4.1 翻译

样例

4
4
2 2
1 6
1 10
1 13
5
3 4
3 1
2 5
3 2
3 3
6
1 2
3 4
1 4
3 4
3 5
2 3
1
1 1
15
14
20
1

在线编程 IDE

建议全屏模式获得最佳体验