QOJ.ac

QOJ

Límite de tiempo: 2.0 s Límite de memoria: 1024 MB Puntuación total: 100 Hackeable ✓

#14417. 罗马数字

Estadísticas

考虑以下罗马数字的推广。总共有 $n$ 个数码,每个数码都有自己的优先级和数值。在本题中,我们用由大小写英文字母组成的字符串来表示这些数码。我们分别用 $p_i$、$v_i$ 和 $d_i$ 表示第 $i$ 个罗马数码的优先级、数值和字符串表示。

一个罗马数字是由罗马数码组成的数组。一个数字 $d_1 \dots d_m$ 的值是递归计算的。首先,选择一个位置 $i$,使得数码 $d_i$ 具有最高的优先级。如果存在多个具有最高优先级的数码,选择其中位置 $i$ 最小的一个。然后:

$$\text{value}(d_1 \dots d_m) = v_i - \text{value}(d_1 \dots d_{i-1}) + \text{value}(d_{i+1} \dots d_m)$$

其中 $v_i$ 是 $d_i$ 的数值。空数字的值约定为 $0$。

例如,考虑以下三元组 $(p_i, v_i, d_i)$:$(1, 1, \text{I})$、$(2, 5, \text{V})$ 和 $(3, 10, \text{X})$。它们为常见的罗马数字赋予了通常的值:例如,$\text{value}(\text{II}) = 2$,$\text{value}(\text{IX}) = 9$,以及 $\text{value}(\text{XIV}) = 14$。另一方面,此时的表示并不是唯一的:$\text{value}(\text{IXI}) = \text{value}(\text{IIIIIXV}) = \text{value}(\text{X}) = 10$。

给你一个由罗马数码组成的数组 $s_1 \dots s_n$ 以及 $q$ 个形式为 $(\ell, r)$ 的独立询问。对于每个询问,计算子数组 $s_\ell \dots s_r$ 的值。

输入格式

第一行包含三个整数 $m$、$n$ 和 $q$($1 \le m \le 10^5$,$1 \le n, q \le 3 \cdot 10^5$):分别表示罗马数码的数量、给定数组的长度以及询问的数量。

接下来的 $m$ 行。其中第 $i$ 行包含两个整数 $p_i$ 和 $v_i$($1 \le p_i \le m$,$1 \le v_i \le 10^9$),紧接着是一个由大小写英文字母组成的字符串 $d_i$($1 \le |d_i| \le 7$)。它们分别表示第 $i$ 个罗马数码的优先级、数值和字符串表示。所有的 $d_i$ 都是互不相同的。

下一行包含 $n$ 个空格分隔的罗马数码表示 $s_1 \dots s_n$。

接下来的 $q$ 行,每行包含两个整数 $\ell$ 和 $r$($1 \le \ell \le r \le n$)。

输出格式

对于每个询问,输出一行,包含一个整数:数字 $s_\ell \dots s_r$ 的值。

样例

输入样例 1

3 5 3
1 1 I
2 5 V
3 10 X
I X I V X
1 2
1 3
3 5

输出样例 1

9
10
6

输入样例 2

3 6 1
1 6 six
1 16 sixteen
1 60 sixty
six sixty six sixteen six sixteen
1 6

输出样例 2

110

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.