質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

253閲覧

Atcoder pythonでの実装時エラー ABC204 C問題

dada317_p

総合スコア16

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2022/06/23 10:55

編集2022/06/24 04:01

Atcoder の ABC204 の C問題について、
https://atcoder.jp/contests/abc204/tasks/abc204_c
解法は理解して実装しましたが、提出結果がWAとなりました。
35個あるテストケースのうち、34個についてはACでしたが、ケース(random_34.txt)についてのみREとなりました。
AtCoder 上での実行結果なので、エラー文やどこでエラーが起きたかについては不明です。
自分でもいくつかランダムなデータを作ってみたのですが、どれもWAとはならずエラーの内容すらわかりません。

以下、私の実装したコードです。
このコードについて、どの箇所でエラーが起きたのかをご教授いただけないでしょうか。

python

1n, m = map(int, input().split()) 2 3load_l = [[] for _ in range(n)] 4for _ in range(m): 5 a, b = map(int, input().split()) 6 load_l[a-1].append(b-1) 7 8ans = 0 9 10def dfs(city_n): 11 global ans 12 visit_set.add(city_n) 13 ans += 1 14 15 visit_cue = set(load_l[city_n]) 16 for c in visit_cue: 17 if c in visit_set: 18 continue 19 else: 20 dfs(c) 21 return 22 23for i in range(n): 24 visit_set = set() 25 dfs(i) 26 27print(ans)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

actorbug

2022/06/23 15:08

WAではなくREではないでしょうか。 もしそうなら、公式解説にある「おまじない」を先頭に入れれば解決するかもしれません。 # おまじない import sys sys.setrecursionlimit(10000)
dada317_p

2022/06/24 03:58

確かにREでした。質問の不備申し訳ありません。 合わせてお二方ありがとうございました。
guest

回答1

0

自己解決

コメントいただいたテストケースにて実行しました。

REの原因はpython のデフォルトの再帰処理の回数をオーバーしたために
RecursionError: maximum recursion depth exceeded while calling a Python object
が発生していたからのようでした。
コメントいただいたお二方、ありがとうございました。

これの解決のためにコードの先頭に

python

1# おまじない 2import sys 3sys.setrecursionlimit(10000)

と追加したところ、無事にACとなりました。

dfsの実装の際(再帰処理の実装)の際にはこの点にも気をつける必要がありました。

投稿2022/06/24 03:59

dada317_p

総合スコア16

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問