QOJ.ac

QOJ

Time Limit: 1 s Memory Limit: 256 MB Total points: 100

#795. 云计算

Statistics

Johnny 正在创办一家名为 Bytecomp 的公司,该公司提供云端计算能力。拥有这种业务的公司通常会有许多高性能计算机,用于执行客户的计算任务。

Johnny 还没有购买任何机器。他去了一家电脑商店,拿到了一份所有 $n$ 台可用计算机的列表。每台计算机由核心数 $c_i$、时钟频率 $f_i$ 和价格 $v_i$ 指定。这样的计算机包含 $c_i$ 个独立的内核,它们互不干扰,因此可以分配给不同的任务。

当客户下订单请求资源时,她会指定所需的内核数 $C_j$ 和所需的最低时钟频率 $F_j$。订单还包含客户愿意支付的价格 $V_j$。如果接受了订单,Bytecomp 需要为客户提供其所需的计算能力的独占访问权。Johnny 需要选择 $C_j$ 个内核(可能来自不同的计算机),每个内核的时钟频率至少为 $F_j$。这些内核不能分配给任何其他订单。

请帮助 Johnny 尽可能多地赚钱:选择一个最优的订单子集来接受,并从商店中选择一个计算机子集来满足所有已接受的订单。你的目标是最大化总利润,即提供计算能力获得的收入与购买计算机的成本之间的差额。

输入格式

标准输入的第一行包含一个整数 $n$ ($1 \le n \le 2000$),表示商店中可用的计算机数量。接下来的 $n$ 行,每行包含一台计算机的描述,由三个空格分隔的整数 $c_i$、$f_i$ 和 $v_i$ ($1 \le c_i \le 50, 1 \le f_i \le 10^9, 1 \le v_i \le 10^9$) 组成,分别代表核心数、时钟频率和价格。

下一行包含一个整数 $m$ ($1 \le m \le 2000$),表示订单数量。接下来的 $m$ 行,每行包含一个订单的描述,由三个空格分隔的整数 $C_j$、$F_j$ 和 $V_j$ ($1 \le C_j \le 50, 1 \le F_j \le 10^9, 1 \le V_j \le 10^9$) 组成,分别代表所需的内核数、允许的最低时钟频率和客户的预算。

输出格式

标准输出仅包含一行,即可以实现的最大总利润。

子任务

测试集分为以下子任务,并带有附加约束。每个子任务中的测试由一个或多个独立的测试组组成。每个测试组可能包含一个或多个测试用例。

子任务 约束 分值
1 $n \le 15$ 18
2 $m \le 15$ 18
3 $n, m \le 250, c_i = C_j = 1$ 18
4 $f_i = F_j = 1$ 18
5 $v_i = V_j = 1$ 18
6 无附加约束 10

样例

输入 1

4
4 2200 700
2 1800 10
20 2550 9999
4 2000 750
3
1 1500 300
6 1900 1500
3 2400 4550

输出 1

350

说明 1

样例说明:共有四台可用计算机和三个订单。最优方案是购买两台四核计算机,成本分别为 700 和 750(总计 1450),然后接受前两个订单,总收入为 $300 + 1500 = 1800$。此时我们拥有四个时钟频率为 2000 的内核和四个时钟频率为 2200 的内核。我们可以将其中任意六个分配给第二个订单(需要时钟频率 1900),并将一个分配给第一个订单(需要时钟频率 1500)。有一个内核将不会被使用,这是允许的。 总利润为 $1800 - 1450 = 350$。

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.