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

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

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

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

Q&A

解決済

1回答

285閲覧

幅優先探索について AtCoder過去問

labpynguin

総合スコア11

Python

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

0グッド

0クリップ

投稿2020/05/18 07:59

編集2020/05/18 08:07

前提・実現したいこと

AtCoder過去問 「https://atcoder.jp/contests/abc088/tasks/abc088_d」 を解いていると直しても値が一致しない問題が出てきてしまいました。
何度見返しても自分コードのどこが間違えているのかわかりません。

該当のソースコード

python

1from collections import deque 2 3def bfs(sx, sy, gx, gy): 4 dist = [[0]*w for i in range(h)] #全頂点を未訪問 5 que = deque([(sy,sx)]) #初期条件 6 dist[sy][sx] = 1 #start訪問済み 7 directions = [(1, 0), (0, 1), (-1, 0), (0, -1)] 8 while que: 9 y,x = que.popleft() 10 for dirs in directions: 11 ny = y + dirs[0] 12 nx = x + dirs[1] 13 if not(0<=ny<h or 0<=nx<w): 14 continue 15 if G[ny][nx] == "#": 16 continue 17 if dist[ny][nx] == 0: 18 dist[ny][nx] = dist[y][x] + 1 19 que.append((ny, nx)) 20 if nx == w-1 and ny == h-1: 21 return dist[gy][gx] 22 return -1 23 24h,w = map(int,input().split()) 25G = [input() for i in range(h)] 26 27cnt = 0 28for i in range(h): 29 cnt += G[i].count('#') 30 31ans = bfs(0,0,w-1,h-1) 32if ans == -1: 33 print(-1) 34else: 35 score = h * w - cnt - ans 36 print(score) 37 38

試したこと

他の人の提出を見て修正
https://atcoder.jp/contests/abc088/submissions/13364885」
↑BFSの書き方が近かったので参考にしました。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

Zuishin

2020/05/18 08:03

他の人の提出はどこですか?
labpynguin

2020/05/18 08:09

記載しそびれておりました。 試したこと欄へ追記しました。
guest

回答1

0

ベストアンサー

if not(0<=ny<h or 0<=nx<w):

if not(0<=ny<h and 0<=nx<w):
にしないといけないと思います。

投稿2020/05/18 08:27

minaminao

総合スコア249

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

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

labpynguin

2020/05/18 08:34

解答ありがとうございます。 問題が解決しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問