#512. The Best Subsequence

0

The Best Subsequence

The Best Subsequence

题目描述

农夫约翰有一个长度为 NN (1≤N≤109)(1 \leq N \leq 10^9) 的二进制字符串,初始时全为 0。 他将首先按顺序对该字符串执行 MM 次 (1≤M≤2⋅105)(1 \leq M \leq 2 \cdot 10^5) 更新。每次更新会将区间 ll 到 rr 内的每个字符翻转。具体来说,翻转会把字符从 00 变为 11,或从 11 变为 00。 随后,他会向你提出 QQ 次 (1≤Q≤2⋅105)(1 \leq Q \leq 2 \cdot 10^5) 询问。对于每个询问,他要求你在子串从 ll 到 rr 中选取字符,输出长度为 kk 的字典序最大的子序列。若你的答案是二进制串 s1s2…sks_1s_2 \dots s_k,则输出 ∑i=0k−12i⋅sk−i\sum_{i=0}^{k-1} 2^i \cdot s_{k-i}(即将其视为二进制数时的数值)对 109+710^9+7 取模的结果。 子序列是指可以通过删除原字符串中的若干个字符(也可以一个不删),且不改变剩余字符相对顺序而得到的字符串。 回顾:对于等长字符串 AA 与 BB,当且仅当存在第一个位置 ii(若存在)使得 Ai≠BiA_i \neq B_i,并且 Ai>BiA_i > B_i 时,称 AA 的字典序大于 BB。

输入格式

第一行包含 NN、MM 和 QQ。 接下来 MM 行,每行包含两个整数 ll 和 rr (1≤l≤r≤N1 \leq l \leq r \leq N) —— 每次更新的端点。 接下来 QQ 行,每行包含三个整数 ll、rr 和 kk (1≤l≤r≤N,1≤k≤r−l+11 \leq l \leq r \leq N, 1 \leq k \leq r - l + 1) —— 每次询问的端点以及子序列长度。

输出格式

输出 QQ 行。第 ii 行应包含第 ii 个询问的答案。

5 3 9
1 5
2 4
3 3
1 5 5
1 5 4
1 5 3
1 5 2
1 5 1
2 5 4
2 5 3
2 5 2
2 5 1
21
13
7
3
1
5
5
3
1
9 1 1
7 9
1 8 8
3
30 1 1
1 30
1 30 30
73741816

提示

执行完这 MM 次操作后,字符串为 1010110101。 对于第一个询问,长度为 55 的子序列只有一个,即 1010110101,其含义为 $1 \cdot 2^4 + 0 \cdot 2^3 + 1 \cdot 2^2 + 0 \cdot 2^1 + 1 \cdot 2^0 = 21$。 对于第二个询问,长度为 44 的不同子序列有 55 个:01010101、11011101、10011001、10111011、10101010。字典序最大的子序列为 11011101,其含义为 $1 \cdot 2^3 + 1 \cdot 2^2 + 0 \cdot 2^1 + 1\cdot 2^0 = 13$。 对于第三个询问,字典序最大的序列为 111111,其含义为 77。 请确保输出对 109+710^9+7 取模后的答案。 评分: Input 4: N≤10,Q≤1000N \leq 10, Q \leq 1000 Input 5: M≤10M \leq 10 Inputs 6-7: N,Q≤1000N, Q \leq 1000 Inputs 8-12: N≤2⋅105N \leq 2 \cdot 10^5 Inputs 13-20: 无额外限制。 题目贡献者:Chongtian Ma

标签: USACO|2025|Gold

来源

USACO|2025|Gold