QOJ.ac

QOJ

Limite de temps : 7 s Limite de mémoire : 1024 MB Points totaux : 100 Hackable ✓

#13982. 中场卡牌

Statistiques

千寻与汤婆婆

魔女汤婆婆强迫千寻玩一个卡牌游戏,以赢回她和她父母的自由。卡牌的数值范围为 $1$ 到 $C$。千寻对于每种可能的数值都有无限张卡牌。在这个游戏中,一共有 $N$ 轮。在第 $i$ 轮中,千寻只要打出一张数值在 $[L_i, H_i]$ 范围(闭区间)内的卡牌即可获胜。

请帮助千寻处理 $T$ 个操作:

操作类型 0 是格式为 0 A B K 的查询。在该操作中,千寻从第 $A$ 轮开始进入卡牌游戏,并在第 $B$ 轮结束后退出。汤婆婆允许千寻在此范围内恰好选择 $K$($1 \le K \le \min(100, B - A + 1)$)轮 $(R_1, R_2, \dots, R_K)$,满足 $A \le R_1 < R_2 < \dots < R_K \le B$。然后她恰好打出 $K$ 张卡牌 $(C_1, C_2, \dots, C_K)$($1 \le C_i \le C$),其中 $C_i$ 在第 $R_i$ 轮打出。注意,由于她每种数值的卡牌都有无限张,因此不同轮次中打出的卡牌数值可以重复。为了回答该查询,请输出有多少个不同的元组 $(R_1, R_2, \dots, R_K, C_1, C_2, \dots, C_K)$,使得千寻在她参与的每一轮中都能获胜。由于这个数量可能很大,请对 $10^9 + 7$ 取模后输出。

操作类型 1 是格式为 1 P S T 的修改。在该操作中,汤婆婆改变了卡牌游戏的规则。现在,对于第 $P$ 轮,千寻必须打出一张在 $S$ 到 $T$ 之间的卡牌才能获胜。此修改适用于所有后续操作。

输入格式

输入的第一行包含三个空格分隔的整数 $N$($1 \le N \le 100\,000$)、$C$($1 \le C \le 10\,000$)和 $T$($1 \le T \le 5\,000$),分别代表轮数、卡牌的最大可能数值以及操作次数。

接下来的 $N$ 行输入,每行包含两个空格分隔的整数,对应游戏开始时第 $i$ 轮的 $L_i$ 和 $H_i$($1 \le L_i \le H_i \le C$)。$L_i$ 和 $H_i$ 分别对应在进行任何修改之前,千寻在第 $i$ 轮中获胜原本可以打出的最低和最高卡牌数值。

接下来的 $T$ 行输入包含操作。每行将以 01 开头。

  • 如果某行以 0 开头,它将包含另外三个空格分隔的整数 $A, B$($1 \le A \le B \le N$)和 $K$($1 \le K \le \min(100, B - A + 1)$)。$A$ 和 $B$ 对应千寻在该查询中可以参与的第一轮和最后一轮,而 $K$ 对应她在该查询中参与的轮数。
  • 如果某行以 1 开头,它将包含另外三个空格分隔的整数 $P$($1 \le P \le N$)、$S$ 和 $T$($1 \le S \le T \le C$)。$P$ 对应被修改的轮次,$S$ 和 $T$ 对应千寻在第 $P$ 轮获胜必须打出的新最低和最高卡牌数值。

输出格式

对于每个类型为 0 的查询,请输出满足查询中列出的限制的不同元组 $(R_1, R_2, \dots, R_K, C_1, C_2, \dots, C_K)$ 的数量,对 $10^9 + 7$ 取模。

样例

输入样例 1

4 9 6
1 5
2 8
6 9
1 4
0 1 4 1
0 2 3 2
1 2 4 4
1 1 2 6
0 1 4 1
0 2 3 2

输出样例 1

20
28
14
4

说明

在样例中: 对于第一个查询(0 1 4 1),她仅在第 1 轮玩有 5 种获胜方式,仅在第 2 轮玩有 7 种获胜方式,仅在第 3 轮玩有 4 种获胜方式,仅在第 4 轮玩有 4 种获胜方式。因此,第一个查询的答案是 $5 + 7 + 4 + 4 = 20$。

对于第二个查询(0 2 3 2),她必须选择在第 2 轮和第 3 轮玩。为了在这两轮中都获胜,有 $7 \times 4 = 28$ 种可能的轮次和获胜卡牌元组。

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.