気づき
- 開始位置に戻ることができる
- 偶数ターンで訪れた頂点に奇数ターンに訪れることは出来ない
道路の進行方向が毎ターン切り替わるので、一つ進むと、次のターンに一つ戻ることができる。
また、どの頂点も行って戻るのに(aは進んだ街の数)ターンかかるので、偶奇が変わらい。
これらから、あるターンに偶数ターンに訪れた頂点に奇数ターンに訪れることは出来ないし、逆も同じ。
よって偶数ターンに訪れる頂点と奇数ターンに訪れる頂点は区別して良い。
解法
偶数ターンと奇数ターンの頂点を別の頂点としてグラフを作る。
偶数ターンは0からN、奇数ターンはN+1からとする。
(ややこしいが、頂点iのとき偶数ターンは頂点i、奇数ターンは頂点(i+(N+1)+5)とかにすればよい(+5は事故をさけてる))
偶数ターンに任意の頂点を出発することにして、奇数ターンの頂点と双方向に辺を結ぶ(1ターン後には道が切り替わって戻ることができる)。
こうして用意したグラフを用いて、UnionFindやDPを用いて、任意の頂点から訪れることができる頂点数を数える。
この方法でAC。
(翻訳サービスに投げたら文章落っことされて迷った)
(英語読んで存在しない条件を想像してしまった)
(出発は偶奇どちらでも良いと勘違いした)