QOJ.ac

QOJ

Limite de temps : 1.0 s Limite de mémoire : 256 MB Points totaux : 100 Hackable ✓

#9956. 麻将排序

Statistiques

DreamGrid 刚刚在他的口袋里发现了一副麻将,其中包含 $3M$ 张花色牌和一张白板。每张花色牌都有一个花色(万、条或筒)和一个等级(从 $1$ 到 $M$),且每种等级和花色的组合恰好只有一张牌。

等级从 1 到 9 的万牌

等级从 1 到 9 的条牌

等级从 1 到 9 的筒牌

白板

由于 DreamGrid 感到无聊,他决定玩这些牌。他首先从 $3M$ 张花色牌中选出一张作为“幸运牌”,然后从这 $(3M + 1)$ 张牌中取出 $N$ 张,并按照以下规则对这 $N$ 张牌进行排序:

  • 如果 $N$ 张牌中包含“幸运牌”,它必须被放置在最左侧。
  • 对于两张都不是“幸运牌”的牌 $A$ 和 $B$,如果:
    • $A$ 是万牌,$B$ 是条牌,或者
    • $A$ 是万牌,$B$ 是筒牌,或者
    • $A$ 是条牌,$B$ 是筒牌,或者
    • $A$ 和 $B$ 花色相同且 $A$ 的等级小于 $B$ 的等级, 则 $A$ 必须放置在 $B$ 的左侧。

白板是一张特殊的牌。如果它包含在 $N$ 张牌中,在排序过程中,它被视为“幸运牌”的原始(非幸运)版本。例如,考虑以下已排序的牌,其中“3 万”被选为幸运牌。在这种情况下,白板被视为“3 万”的原始非幸运版本,应该放置在“2 万”和“4 万”之间。

由于 DreamGrid 非常健忘,他在排序后立刻忘记了哪张牌是幸运牌!给定 $N$ 张已排序的牌,请告诉 DreamGrid 可能的幸运牌数量。

输入格式

输入包含多组测试数据。第一行包含一个整数 $T$,表示测试数据的组数。对于每组测试数据:

第一行包含两个整数 $N$ 和 $M$ ($1 \le N, M \le 10^5, N \le 3M + 1$),表示已排序的牌数和花色牌的最大等级。

接下来的 $N$ 行,第 $i$ 行描述从左到右第 $i$ 张已排序的牌。该行以一个大写字母 $s_i$ ($s_i \in \{C, B, D, W\}$) 开头,表示第 $i$ 张牌的花色:

  • 如果 $s_i = C$,则后面跟一个整数 $r_i$ ($1 \le r_i \le M$),表示这是一张等级为 $r_i$ 的万牌;
  • 如果 $s_i = B$,则后面跟一个整数 $r_i$ ($1 \le r_i \le M$),表示这是一张等级为 $r_i$ 的条牌;
  • 如果 $s_i = D$,则后面跟一个整数 $r_i$ ($1 \le r_i \le M$),表示这是一张等级为 $r_i$ 的筒牌;
  • 如果 $s_i = W$,则表示这是一张白板。

保证至少存在一张可能的幸运牌,且所有测试数据的 $N$ 之和不超过 $10^6$。

输出格式

对于每组测试数据,输出一行,包含一个整数,表示可能的幸运牌数量。

样例

输入 1

4
3 9
C 2
W
C 4
6 9
C 2
C 7
W
B 3
B 4
D 2
3 100
C 2
W
C 9
3 9
C 1
B 2
D 3

输出 1

2
4
7
25

说明

对于第一个样例,“2 万”和“3 万”是可能的幸运牌。

对于第二个样例,“8 万”、“9 万”、“1 条”和“2 条”是可能的幸运牌。

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.