atcoder#ABC226B. [ABC226B] Counting Arrays

[ABC226B] Counting Arrays

题目描述

1 1 から N N までの番号がついた N N 個の数列が与えられます。
数列 i i は、長さが Li L_i j j (1  j  Li) (1\ \leq\ j\ \leq\ L_i) 番目の要素が ai,j a_{i,j} であるような数列です。

数列 i i と 数列 j j は、 Li = Lj L_i\ =\ L_j かつすべての k k (1  k  Li) (1\ \leq\ k\ \leq\ L_i) に対して ai,k = aj,k a_{i,k}\ =\ a_{j,k} が成り立つ時に同じであるとみなします。
同じ数列は 1 1 種類として数えるとき、数列 1 1 から 数列 N N の中に全部で何種類の数列がありますか?

输入格式

入力は以下の形式で標準入力から与えられる。

N N L1 L_1 a1,1 a_{1,1} a1,2 a_{1,2} \dots a1,L1 a_{1,L_1} L2 L_2 a2,1 a_{2,1} a2,2 a_{2,2} \dots a2,L2 a_{2,L_2} \vdots LN L_N aN,1 a_{N,1} aN,2 a_{N,2} \dots aN,LN a_{N,L_N}

输出格式

数列の種類数を出力せよ。

题目大意

题目描述

给定 NN 个序列,第 ii 个序列的长度为 LiL_i ,序列 ii 中含有 LiL_i 个元素,若序列 iijj 的长度相等,且序列 iijj 中的每个元素都相同,则认为这两个序列是同一个序列,问有多少个序列。

输入格式

第一行输入 NN 。第二行到第 N+1N+1 行,每行先输入 LiL_i 然后输入 LiL_i 个元素,元素之间用空格隔开。

输出格式

输出仅一行,表示有多少个序列。

样例解释

例如样例一:序列 1144 是相同的两个相同序列,所以我们认为他是同一个序列。没有与序列 2233 相同的序列,所以它们各算作一个序列,故一共有三个序列。

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

提示

制約

  • 1  N  2 × 105 1\ \leq\ N\ \leq\ 2\ \times\ 10^5
  • 1  Li  2 × 105 1\ \leq\ L_i\ \leq\ 2\ \times\ 10^5 (1  i  N) (1\ \leq\ i\ \leq\ N)
  • 0  ai,j  109 0\ \leq\ a_{i,j}\ \leq\ 10^{9} (1  i  N, 1  j  Li) (1\ \leq\ i\ \leq\ N,\ 1\ \leq\ j\ \leq\ L_i)
  • すべての数列の要素の個数の和、すなわち i=1N Li \sum_{i=1}^N\ L_i 2 × 105 2\ \times\ 10^5 を超えない。
  • 入力はすべて整数である。

Sample Explanation 1

入力例 1 1 で与えられている数列は以下の 4 4 個です。 - 数列 1 1 : (1, 2) (1,\ 2) - 数列 2 2 : (1, 1) (1,\ 1) - 数列 3 3 : (2, 1) (2,\ 1) - 数列 4 4 : (1, 2) (1,\ 2) このうち数列 1 1 と数列 4 4 は同じ数列で、それ以外は互いに異なる数列なので全部で 3 3 種類の数列があります。

Sample Explanation 2

入力例 2 2 で与えられている数列は以下の 5 5 個です。 - 数列 1 1 : (1) (1) - 数列 2 2 : (1) (1) - 数列 3 3 : (2) (2) - 数列 4 4 : (1, 1) (1,\ 1) - 数列 5 5 : (1, 1, 1) (1,\ 1,\ 1)