AtCoder ABC 226 B – Counting Arrays Python解説
Counting Arrays
1 から N までの番号がついた N 個の数列が与えられます。
AtCoder Beginner Contest「Counting Arrays」
数列 i は、長さが Liで j (1≤j≤Li) 番目の要素が ai,jであるような数列です。
数列 i と 数列 j は、 Li=Ljかつすべての k (1≤k≤Li) に対して ai,k=aj,kが成り立つ時に同じであるとみなします。
同じ数列は 1 種類として数えるとき、数列 1 から 数列 N の中に全部で何種類の数列がありますか?
同じ数列は1種類と数えるとき、全部で何種類の数列があるか?という問題です。
与えられる入力から数列を受け取り、重複していない数列をカウントしていけばよいのですが、この問題は制限時間に引っ掛かりやすいので注意が必要です。
n = int(input())
a = set()
for _ in range(n):
a.add(input())
print(len(a))
先述した通り、この問題はTLEになりやすいので、重複した数列の処理はset関数を使ったほうがよいです。set関数を宣言して、数列を受け取っていきます。最後にlen関数で数列の要素数を数えて完了です。