#P17830. [CSP-J 2026] 纸牌游戏 / card(民间数据)

    ID: 3083 传统题 1000ms 1024MiB 尝试: 1 已通过: 1 难度: 4 上传者: 标签>动态规划 DP搜索深度优先搜索 DFS树论CSP-J 入门级2026O2优化

[CSP-J 2026] 纸牌游戏 / card(民间数据)

题目描述

小 Z 正在玩一种单人纸牌游戏。

他有一叠特制的纸牌,共有 nn 张,从上到下的点数依次为 a1,a2,…,ana_1,a_2,\ldots,a_n。每张牌的点数都是 11 到 mm 之间的整数,且每种点数都出现至少一次。

小 Z 将进行 nn 局相互独立的游戏。每局开始前,他会将所有牌按原顺序放回牌堆,并清空桌面。在第 ii(1≤i≤n1\le i\le n)局中,他跳过前 i−1i-1 张牌,依次打出第 ii 张到第 nn 张牌,这些牌的点数依次为 ai,ai+1,…,ana_i,a_{i+1},\ldots,a_n。

桌面上的牌始终从左到右排成一行。打出一张点数为 kk 的牌时:

  • 若桌面上没有点数为 kk 的牌,就将这张牌放在最右端;
  • 否则,收走桌面上点数为 kk 的牌及其右侧的所有牌,再把这张牌放在最右端。被收走的牌在本局中不再使用。

由上述规则可知,任意时刻桌面上同一种点数的牌至多只有一张。

最后一张牌打出后,本局游戏结束。

例如,若桌面上从左到右的牌的点数依次为 1,4,21,4,2,则打出一张点数为 33 的牌后,桌面上从左到右的牌的点数依次为 1,4,2,31,4,2,3。接着打出一张点数为 44 的牌时,桌面上原来点数为 44 的牌及其右侧的所有牌(点数依次为 4,2,34,2,3)被收走,再把新打出的 44 放在最右端,此时桌面上从左到右的牌的点数依次为 1,41,4。

你需要帮助小 Z 依次求出,对于每个 i=1,2,…,mi=1,2,\ldots,m,在所有 nn 局游戏中,有多少局结束时桌面上留有点数为 ii 的牌。

输入格式

从文件 card.in 中读入数据。

输入的第一行包含两个正整数 n,mn,m,分别表示牌的数量和点数种类数。

输入的第二行包含 nn 个正整数 a1,a2,…,ana_1,a_2,\ldots,a_n,依次表示小 Z 的牌从上到下的点数。

输出格式

输出到文件 card.out 中。

输出一行 mm 个非负整数,其中第 ii(1≤i≤m1\le i\le m)个整数表示在所有 nn 局游戏中,有多少局结束时桌面上留有点数为 ii 的牌。

输入输出样例 #1

输入 #1

4 3
1 2 1 3

输出 #1

3 1 4

输入输出样例 #2

输入 #2

10 3
3 1 2 1 3 2 3 1 2 1

输出 #2

10 3 3

说明/提示

样例 1 解释

对于第 11 局游戏,小 Z 依次打出点数为 1,2,1,31,2,1,3 的牌:

  1. 打出第 11 张牌(点数为 11)后,桌面上只有一张点数为 11 的牌;
  2. 打出第 22 张牌(点数为 22)后,桌面上从左到右的牌的点数依次为 1,21,2;
  3. 打出第 33 张牌(点数为 11)后,先收走桌面上点数为 1,21,2 的两张牌,再放上新打出的 11,桌面上只有一张点数为 11 的牌;
  4. 打出第 44 张牌(点数为 33)后,桌面上从左到右的牌的点数依次为 1,31,3。

因此第 11 局游戏结束时,桌面上从左到右的牌的点数依次为 1,31,3。

对于第 22 局游戏,小 Z 依次打出点数为 2,1,32,1,3 的牌,结束时桌面上从左到右的牌的点数依次为 2,1,32,1,3。

对于第 33 局游戏,小 Z 依次打出点数为 1,31,3 的牌,结束时桌面上从左到右的牌的点数依次为 1,31,3。

对于第 44 局游戏,小 Z 仅打出一张点数为 33 的牌,结束时桌面上只有一张点数为 33 的牌。

因此,在全部 44 局游戏中:

  • 有 33 局游戏结束时,桌面上留有点数为 11 的牌,即第 1,2,31,2,3 局;
  • 有 11 局游戏结束时,桌面上留有点数为 22 的牌,即第 22 局;
  • 有 44 局游戏结束时,桌面上留有点数为 33 的牌,即全部 44 局。

样例 3

见题目目录下的 card/3.in 与 card/3.ans。

该样例满足测试点 4∼64\sim 6 的约束条件。

样例 4

见题目目录下的 card/4.in 与 card/4.ans。

该样例满足测试点 7∼97\sim 9 的约束条件。

样例 5

见题目目录下的 card/5.in 与 card/5.ans。

该样例满足测试点 15∼1715\sim 17 的约束条件。

样例 6

见题目目录下的 card/6.in 与 card/6.ans。

该样例满足测试点 21,2221,22 的约束条件。

数据范围

对于所有测试数据,均有:

  • 2≤n≤5×1052\le n\le 5\times 10^5,1≤m≤3×1051\le m\le 3\times 10^5;
  • 对于所有 ii(1≤i≤n1\le i\le n),均有 1≤ai≤m1\le a_i\le m;
  • 每种点数都出现至少一次,即对于所有 ii(1≤i≤m1\le i\le m),均存在 jj(1≤j≤n1\le j\le n)满足 aj=ia_j=i。

::cute-table{tuack}

测试点编号 n≤n\le m≤m\le 特殊性质
1∼31\sim 3 55 22 无
4∼64\sim 6 500500 200200
7∼97\sim 9 50005000 30003000 A
10∼1210\sim 12 无
13,1413,14 2×1052\times 10^5 22
15∼1715\sim 17 30003000 B
18,1918,19 无
2020 10510^5 A
21,2221,22 无
23∼2523\sim 25 5×1055\times 10^5 3×1053\times 10^5

特殊性质 A:a1≤a2≤⋯≤ana_1\le a_2\le\cdots\le a_n。

特殊性质 B:至多存在 49994999 个 ii(1≤i≤n−11\le i\le n-1)满足 ai≠ai+1a_i\ne a_{i+1}。

附件下载