模拟九
T1 魔术
时间限制:1000ms
空间限制:512MiB
题目描述
Nyx 要表演一场魔术。她有一个 \(1\) 到 \(n\) 的排列,观众能够看到这个排列,但她自己无法看到。
Nyx 原本有 \(2n\) 张卡牌 \(L(1),L(2),\ldots,L(n),R(1),R(2),\ldots,R(n)\)。
- 使用 \(L(x)\),会从排列中取出数字 \(x\),并把它放到排列最前面。
- 使用 \(R(x)\),会从排列中取出数字 \(x\),并把它放到排列最后面。
例如,对排列 \((4,3,1,2,5)\) 使用 \(L(1)\),会得到 \((1,4,3,2,5)\);使用 \(R(1)\),会得到 \((4,3,2,5,1)\)。
Nyx的目标是,把这个排列进行排序。不难说明,如果有全部的 \(2n\) 张卡牌,她可以轻松实现这个目标。
但不幸的是,临上台时,一些卡牌被偷走了,因此 Nyx 未必能完成完整的排序任务。Nyx 只能退而求其次的希望,最终排列里的逆序对数量尽可能少,让观众感到满意。
Nyx 可以预先选择任意顺序使用现有卡牌,每张卡牌至多使用一次,也可以不使用。请你求出:最坏情况下排列的逆序对数量,并输出这个最小值。
输入格式
第一行一个正整数 \(T\),表示测试数据组数。
接下来 \(T\) 行,每行一个只包含 0、1、2、3 的字符串 \(S=s_1s_2\cdots s_n\)。
字符串长度 \(n\) 表示排列长度。对于每个 \(1\le i\le n\):
- \(s_i=\)
0: 没有 \(L(i)\) 和 \(R(i)\); - \(s_i=\)
1:只有 \(L(i)\); - \(s_i=\)
2:只有 \(R(i)\); - \(s_i=\)
3:同时有 \(L(i)\) 和 \(R(i)\)。
输出格式
输出 \(T\) 行,每行一个非负整数,依次表示每组数据的答案。
输入样例 #1
2
1032
300230
输出样例 #1
0
5
输入样例 #2
见大样例zip。
这个样例的数据范围与测试点 1, 2 一致。
输出样例 #2
输入样例 #3
见大样例zip。
这个样例的数据范围与测试点 3, 4 一致。
输出样例 #3
输入样例 #4
见大样例zip。
这个样例的数据范围与测试点 5, 6 一致。
输出样例 #4
输入样例 #5
见大样例zip。
这个样例的数据范围与测试点 7, 8 一致。
输出样例 #5
输入样例 #6
见大样例zip。
这个样例的数据范围与测试点 9, 10 一致。
输出样例 #6
说明/提示
【样例 1 解释】
对于第一组数据,Nyx 可以依次使用 \(L(1),R(3),R(4)\)。
对于第二组数据,一种最优方案是依次使用 \(L(1),R(4),R(5)\)。
【大样例下载链接】
【数据范围与约定】
| 测试点编号 | \(n\le\) | 特殊性质 |
|---|---|---|
| \(1\sim2\) | \(10\) | |
| \(3\sim4\) | \(100\) | |
| \(5\sim6\) | \(5\times10^5\) | \(S\) 中只包含 0、1、2 |
| \(7\sim8\) | \(5\times10^5\) | \(S\) 中只包含 0、3 |
| \(9\sim10\) | \(5\times10^5\) |
对于全部数据,\(1\le T\le10\),\(1\le n\le5\times10^5\),\(s_i\in\{0,1,2,3\}\)。
T2 错落有致
时间限制:1500ms
空间限制:512MiB
题目描述
给定 \(n\) 个可选范围 \([l_1,r_1],[l_2,r_2],\ldots,[l_n,r_n]\),以及一个整数 \(M\)。
Nyx 需要选择 \(n\) 个整数 \(x_1,x_2,\ldots,x_n\)。第 \(i\) 个数需要满足 \(x_i\in[l_i,r_i]\),并且所有数的和需要等于 \(M\)。
对于所有 \(k=1,2,\ldots,n\),请你帮她求出:第 \(k\) 小的数最大可能是多少。
注:每个 \(k\) 都需要独立考虑,即不要求存在同一组选择,使得对于所有 \(k\),第 \(k\) 小的数均达到最大值。
输入格式
第一行两个正整数 \(n, M\)。
接下来 \(n\) 行,每行两个正整数 \(l_i,r_i\),表示第 \(i\) 个数的可选范围。
输出格式
对于每个 \(k=1,2,\ldots,n\),令 \(a_k\) 表示第 \(k\) 小的数的最大可能值。一共有 \(n\) 个答案。
为了避免输出这 \(n\) 个数,你只需要输出它们的哈希值,即一个整数:
输入样例 #1
3 16
1 6
5 5
5 9
输出样例 #1
43953734
输入样例 #2
见大样例zip。
这个样例的数据范围与测试点 3-4 一致。
输出样例 #2
输入样例 #3
见大样例zip。
这个样例的数据范围与测试点 5-7 一致。
输出样例 #3
输入样例 #4
见大样例zip。
这个样例的数据范围与测试点 8-10 一致。
输出样例 #4
输入样例 #5
见大样例zip。
这个样例的数据范围与测试点 11-15 一致。
输出样例 #5
说明/提示
【样例 1 解释】
令 \((x_1,x_2,x_3)=(5,5,6)\),排序后为 \((5,5,6)\),所以排在第 \(1\) 个和第 \(2\) 个的数均可以达到 \(5\)。由于第二个数只能选择 \(5\),排在第 \(1\) 个的数不可能超过 \(5\);若排在第 \(2\) 个的数大于 \(5\),则 \(x_1,x_3\) 均至少为 \(6\),此时三个数之和至少为 \(17\),也不满足要求。
令 \((x_1,x_2,x_3)=(2,5,9)\),可以使排在第 \(3\) 个的数等于 \(9\)。第三个数至多选择 \(9\),其余两个数能选择的最大值更小,因此排在第 \(3\) 个的数不可能超过 \(9\)。
所以 \((a_1,a_2,a_3)=(5,5,9)\)。按照输出格式计算哈希,得到 \(43953734\)。
【大样例下载链接】
【数据范围与约定】
| 测试点编号 | \(n\le\) | 特殊性质 |
|---|---|---|
| \(1\sim 2\) | \(8\) | \(r_i-l_i\le 4\) |
| \(3 \sim 4\) | \(500\) | 所有 \(l_i\) 相同 |
| \(5\sim 7\) | \(500\) | 所有 \(r_i\) 相同 |
| \(8\sim 10\) | \(500\) | |
| \(11\sim 15\) | \(10^5\) | |
| \(16\sim20\) | \(10^6\) |
对于全部数据,\(1\le n\le 10^6\),\(1\le l_i\le r_i\le 10^9\),\(1\le M\le 10^{15}\),且保证 \(\sum_{i=1}^{n}l_i\le M\le\sum_{i=1}^{n}r_i\)。
T3 方块
时间限制:1000ms
空间限制:512MiB
题目描述
Nyx 从前玩过一个消除类游戏。
游戏开始时,场景中会生成 \(2\times n\) 个方块。方块有黑白两种颜色。Nyx 只能对方块进行如下的操作:
- 在第一行选择一个长度至少为 \(2\) 的非空子序列 \(1 \le i_1 < i_2 < \cdots < i_t \le n\);
- 将这些被选位置上的方块循环右移一次。也就是说,第 \(i_t\) 个位置上的方块会移到第 \(i_1\) 个位置;其余第 \(i_j\ (1 \le j < t)\) 个位置的方块会被移动到第 \(i_{j+1}\) 个位置。
在游戏刚开始,以及每次操作后,所有上下颜色相同的列会立即消除。消除后,剩余列保持原来的相对顺序,并滑动至相邻位置。
例如,下图展示了一轮操作以及操作以后相应消除的情况。
如果从某个局面开始,无论 Nyx 怎样继续操作,都不可能再发生消除,则游戏结束。
多年以后,Nyx 回忆起了从前的某一局游戏。她只记得有些位置是黑块,有些位置是白块,剩下的位置已经记不清了。你需要将每个 Nyx 不记得的位置替换成黑块或白块,从而得到一组符合记忆的初始状态。我们假设 Nyx 总是使用最优解法,即总是会用最少的操作次数使游戏结束。请你求出在所有符合 Nyx 记忆的初始状态中,Nyx 需要操作步数的最大值。
输入格式
第一行一个正整数 \(T\),表示数据组数。
接下来 \(T\) 行,每行一个仅由 0 到 8 组成的字符串 \(S\),表示一组数据。令 \(n=|S|\)。
对于 \(S\) 中的一个字符,令 \(x=S_i-\texttt{0}\)。\(\lfloor x/3\rfloor\) 表示第一行第 \(i\) 个位置的状态,\(x\bmod 3\) 表示第二行第 \(i\) 个位置的状态。其中:0 表示 Nyx 不记得该位置;1 表示黑块;2 表示白块。
输出格式
输出 \(T\) 行,每行一个整数,依次表示每组数据的答案。
输入样例 #1
2
70501
7023327
输出样例 #1
2
3
输入样例 #2
见大样例zip。
这个样例的数据范围与测试点 8-11 一致。
输出样例 #2
输入样例 #3
见大样例zip。
这个样例的数据范围与测试点 12-15 一致。
输出样例 #3
输入样例 #4
见大样例zip。
这个样例的数据范围与测试点 16-18 一致。
输出样例 #4
输入样例 #5
见大样例zip。
这个样例的数据范围与测试点 22-25 一致。
输出样例 #5
说明/提示
【样例 1 解释】
第 \(1\) 组数据对应的记忆为:
w?b??
b?w?b
这里用 ? 表示 Nyx 不记得的位置。
一种达到答案的符合记忆的初始状态为:
wbbbw
bbwwb
游戏刚开始,第 \(2\) 列上下颜色相同,会立即消除,局面变为:
wbbw
bwwb
以下是一种最优的操作方案:
- 第 \(1\) 次操作,选择第一行第 \(1,2\) 列。操作并消除后,局面变为:
bw wb - 第 \(2\) 次操作,选择第一行第 \(1,2\) 列。操作后所有列都会消除。
第 \(2\) 组数据对应的记忆为:
w??bb?w
b?w??wb
一种达到答案的符合记忆的初始状态为:
wwbbbbw
bbwbwwb
游戏刚开始,第 \(4\) 列上下颜色相同,会立即消除,局面变为:
wwbbbw
bbwwwb
以下是一种最优的操作方案:
-
第 \(1\) 次操作,选择第一行第 \(1,3\) 列。操作并消除后,局面变为:
wbbw bwwb -
第 \(2\) 次操作,选择第一行第 \(1,2\) 列。操作并消除后,剩余局面为:
bw wb -
第 \(3\) 次操作,选择第一行第 \(1,2\) 列。操作后所有列都会消除。
【大样例下载链接】
【数据范围与约定】
| 测试点编号 | \(n\le\) | 是否含有问号 | 特殊性质 |
|---|---|---|---|
| \(1\sim 2\) | \(5\) | 是 | |
| \(3\sim 4\) | \(10^5\) | 否 | 第二行可以划分成至多 \(3\) 个连续同色段,且两行黑色方块数量相同 |
| \(5\sim 7\) | \(10^5\) | 否 | 第二行可以划分成至多 \(3\) 个连续同色段 |
| \(8\sim 11\) | \(10^5\) | 否 | 两行黑色方块数量相同 |
| \(12\sim 15\) | \(10^5\) | 否 | |
| \(16\sim 18\) | \(50\) | 是 | |
| \(19\sim 21\) | \(1500\) | 是 | |
| \(22\sim 25\) | \(10^5\) | 是 |
对于全部数据,\(1\le T\le 10\);每组数据均满足 \(1 \leq n \leq 10 ^ 5,\ \texttt{0}\le S_i \le \texttt{8}\)。
T4 重塑记忆
时间限制:1000ms
空间限制:512MiB
题目描述
Nyx 常常追忆过去。
Nyx 从前有一个 \(0\) 到 \(n-1\) 的排列 \(A=(a_1,a_2,\ldots,a_n)\)。
对于一个区间 \([l,r]\),定义 \(\operatorname{segmex}_A(l,r)\) 为 \(\{a_l,a_{l+1},\ldots,a_r\}\) 中没有出现的最小非负整数。 Nyx 曾经指定 \(m\) 个区间 \([l_1,r_1],[l_2,r_2],\ldots,[l_m,r_m]\),并依次记录这些区间的 \(\operatorname{segmex}\),得到一个长度为 \(m\) 的观测结果。
现在,她忘记了排列中 \(k\) 个位置上的数字,也忘记了观测结果。请你求出可能的观测结果有多少种。
一个观测结果是可能的,当且仅当存在一个符合她的记忆的排列 \(A\),能够得到这个观测结果。两个观测结果不同,当且仅当至少一个区间的 \(\operatorname{segmex}\) 不同。
答案对 \(167772161\) 取模。
输入格式
第一行三个正整数 \(n,m,k\)。
第二行 \(n\) 个整数 \(b_1,b_2,\ldots,b_n\)。
- 若 \(b_i\ge0\),表示 Nyx 记得 \(a_i=b_i\)。
- 若 \(b_i=-1\),表示 Nyx 忘记了 \(a_i\)。
保证恰有 \(k\) 个 \(b_i=-1\),其余数字互不相同。
接下来 \(m\) 行,每行两个正整数 \(l_i,r_i\),表示一个区间。保证所有区间互不相同。
输出格式
输出一行一个整数,表示可能的观测结果数量对 \(167772161\) 取模的结果。
输入样例 #1
7 3 4
-1 -1 1 -1 4 3 -1
1 3
2 5
3 7
输出样例 #1
10
输入样例 #2
4 3 2
-1 1 -1 3
1 2
2 3
1 4
输出样例 #2
2
输入样例 #3
见大样例zip。
这个样例的数据范围与测试点 1-2 一致。
输出样例 #3
输入样例 #4
见大样例zip。
这个样例的数据范围与测试点 3-6 一致。
输出样例 #4
输入样例 #5
见大样例zip。
这个样例的数据范围与测试点 7-10 一致。
输出样例 #5
输入样例 #6
见大样例zip。
这个样例的数据范围与测试点 15-17 一致。
输出样例 #6
输入样例 #7
见大样例zip。
这个样例的数据范围与测试点 18-21 一致。
输出样例 #7
说明/提示
【样例 1 解释】
四个空缺位置需要填入 \(0,2,5,6\)。枚举所有填法后,可以得到以下 \(10\) 种不同的观测结果:
例如,排列 \((2,5,1,6,4,3,0)\) 对应的观测结果为 \((0,0,2)\)。
【样例 2 解释】
两个空缺位置需要填入 \(0,2\)。
- 填成 \((0,1,2,3)\) 时,观测结果为 \((2,0,4)\)。
- 填成 \((2,1,0,3)\) 时,观测结果为 \((0,2,4)\)。
因此共有 \(2\) 种可能的观测结果。
【大样例下载链接】
【数据范围与约定】
| 测试点编号 | \(k\le\) | \(n\le\) | \(m\le\) | 特殊性质 |
|---|---|---|---|---|
| \(1\sim2\) | \(8\) | \(8\) | \(15\) | |
| \(3\sim6\) | \(50\) | \(50\) | \(1275\) | \(n=k\),\(m=\frac{n(n+1)}2\) |
| \(7\sim10\) | \(50\) | \(50\) | \(1275\) | \(n=k\) |
| \(11\sim12\) | \(300\) | \(300\) | \(500\) | \(n=k\) |
| \(13\sim14\) | \(300\) | \(300\) | \(40000\) | \(n=k\) |
| \(15\sim17\) | \(300\) | \(2\times10^5\) | \(40000\) | |
| \(18\sim21\) | \(300\) | \(2\times10^5\) | \(2\times10^5\) | 被遗忘的数字构成连续值域 |
| \(22\sim25\) | \(300\) | \(2\times10^5\) | \(2\times10^5\) |
“被遗忘的数字构成连续值域”表示存在整数 \(x\),使得被遗忘的数字恰为 \(x,x+1,\ldots,x+k-1\)。
对于全部数据,\(1\le k\le300\),\(k\le n\le2\times10^5\),\(1\le m\le\min\left(2\times10^5,\frac{n(n+1)}2\right)\),\(-1\le b_i<n\),\(1\le l_i\le r_i\le n\),保证所有区间互不相同。

浙公网安备 33010602011771号