模拟九

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)\)。

【大样例下载链接】

magic_samples.zip

【数据范围与约定】

测试点编号 \(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\) 个数,你只需要输出它们的哈希值,即一个整数:

\[\left(\sum_{k=1}^{n}a_k\cdot 461^k\right)\bmod 167772161. \]

输入样例 #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\)。

【大样例下载链接】

staggered_samples.zip

【数据范围与约定】

测试点编号 \(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 只能对方块进行如下的操作:

  1. 在第一行选择一个长度至少为 \(2\) 的非空子序列 \(1 \le i_1 < i_2 < \cdots < i_t \le n\);
  2. 将这些被选位置上的方块循环右移一次。也就是说,第 \(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\) 列。操作后所有列都会消除。

【大样例下载链接】

block_samples.zip

【数据范围与约定】

测试点编号 \(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\) 种不同的观测结果:

\[\begin{aligned} &(0,0,2),(0,0,5),(0,2,2),(0,2,5),(0,3,2),\\ &(2,0,0),(2,2,0),(2,3,0),(3,0,0),(3,2,0). \end{aligned} \]

例如,排列 \((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\) 种可能的观测结果。

【大样例下载链接】

reframe_samples.zip

【数据范围与约定】

测试点编号 \(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\),保证所有区间互不相同。

posted @ 2026-09-21 10:59  ShanLiing  阅读(19)  评论(0)    收藏  举报
//雪花飘落效果