CSPSMK02D. 循环序列

提交4 通过2
通过率50%
文件IO启用
输入文件cyc.in
输出文件cyc.out
时间限制1000ms
内存限制512MiB
    ID: 14530 传统题 文件IO 输入文件:cyc.in 输出文件:cyc.out 1000ms 512MiB 尝试: 4 已通过: 2 难度: 提高 上传者: 标签>C++CSP-S考前模拟

题目描述

题目描述

给定 nn 个序列,第 ii 个序列 aia_i 长度为 lil_i,用 [ai,1,ai,2,⋯ ,ai,li][a_{i,1},a_{i,2},\cdots ,a_{i,l_i}] 来表示,元素均是 [1,m][1,m] 中的互不相同的正整数。

每个时刻,所有序列都会向左循环移位一个位置,即,对于第 ii 个序列,如果它目前是 [ai,1,ai,2,⋯ ,ai,li][a_{i,1},a_{i,2},\cdots,a_{i,l_i}],其下一个时刻将会变为 [ai,2,ai,3,⋯ ,ai,li,ai,1][a_{i,2},a_{i,3},\cdots,a_{i,l_i},a_{i,1}]。

对于一个元素 xx,其在时刻 tt 的权值 f(x,t)f(x,t) 记为第 tt 时刻时,xx 在 [a1,1,a2,1,⋯ ,an,1][a_{1,1},a_{2,1},\cdots, a_{n,1}] 这个序列中的最长连续出现次数。例如,11 在 [1,1,4,5,1,4][1,1,4,5,1,4] 中的最长连续出现次数是 22。

你需要对每一个 1≤x≤m1\leq x\leq m 求出 max⁡t=1100100100f(x,t)\max_{t=1}^{100^{100^{100}}} f(x,t) 的值。

输入格式

第一行一个整数 TT 表示数据组数。对于每组数据:

第一行两个正整数 n,mn,m。

接下来 nn 行,第 ii 行先是一个整数 lil_i,然后是 lil_i 个整数 ai,1,⋯ ,ai,lia_{i,1},\cdots,a_{i,l_i}。

输出格式

对于每组数据:

一行 mm 个整数,第 ii 个整数表示 x=ix=i 时的答案。

输入样例

3
3 4
3 3 4 1
4 1 3 4 2
3 3 1 4
5 5
2 3 1
4 5 1 3 2
4 2 1 3 5
1 3
2 5 3
4 6
3 4 5 3
2 6 3
2 3 6
3 3 6 5

输出样例

2 1 3 2
3 1 4 0 1
0 0 2 1 1 2

说明提示

输入样例 #2

1
1 1
1 1

输出样例 #2

1 

输入样例 #3

1
2 3
1 1
2 1 2

输出样例 #3

2 1 0 

数据范围

对于 30%30\% 的数据,1≤T,n,m,li≤51\leq T,n,m,l_i\leq 5。

对于另外 10%10\% 的数据,n=2n=2。

对于另外 20%20\% 的数据,li≤2l_i\leq 2。

对于另外 10%10\% 的数据,li≤5l_i\leq 5。

对于 100%100\% 的数据,1≤T,∑n,∑m≤1051\leq T,\sum n,\sum m\leq 10^5,1≤li≤401\leq l_i\leq 40,∑li≤2×105\sum l_i\leq 2\times 10^5,1≤ai,j≤m1\leq a_{i,j}\leq m。