C/C++の宿題を片付けます 106代目
■ このスレッドは過去ログ倉庫に格納されています
0158デフォルトの名無しさん
2008/05/06(火) 18:44:37宿題に関連しているとは言え、あまり立て続けだと反感買いそうだぞ。
自分でよく考えてみれば、解かると思う。
> MAX_X*MAX_Y
未探索の位置nextについて、distが十分大きな値を持っていれば、
if (dist[next.x][next.y] > dist[curr.x][curr.y] + 1)
の条件が成立するから。
> 既に配線された...
(grid[i][j] == '.' ? MAX_X*MAX_Y : 0) でdistは0なので、探索されない。
> front == bottom
上のwhile (front != bottom) のループは、
ゴールに到達したときに、未探索位置をキューに残したままbreakする。
また、ゴールに到達できなかった場合は、
キューの未探索位置が尽きるので、front == bottom が成立して抜ける。
■ このスレッドは過去ログ倉庫に格納されています