2012-06-03
TCO12 Round 2C
Easy (300) GreedyTravelingSalesman
問題
- セールスマンがN個の都市を0から順番にまわる。
- 全ての都市は、片方向の道路が両方向で用意されており、どの都市からどの都市へも移動できる。
- セールスマンは、未訪問の都市のうち、コストが最小の道路を選んで移動する。
- 各道路のコストが与えられる。ただし道路の1つが工事中のため、1~9999の間で変化する可能性がある。
- 最悪のコストを求める。
方針
- 道路の変化は一度だけで、かつ、最初に起きるとしてよい (sampleより)
- 変化前の最短経路を求めておく
- 最短経路のうち、1箇所が変化する
- 単純に考えると、そのうちの1つが9999になる
- それだけでsampleのいくつかが通るが、合わない
- 全ての経路を1~9999に変化させる全試行でも求まるが、もちろん間に合わない
- 変化するパターンを列挙すると、(1)最短経路のコストが高くなり、別の経路にいく(2)最短経路のコストが高くなるが、同じ経路のまま(3)別の経路のコストが低くなり、別の経路にいく、の3通り
- (1)は最短経路のコストを9999にする
- (2)は最短経路のコストを、最低コスト近辺で試す (同じコストの場合indexが小さいほうが選ばれるため、それを考慮して1を調整する)
- (3)は別の経路のコストを最小値に変更する (マイナス1の調整は(2)と同じ)
- マイナス1調整した場合、最小のコストは1なのに注意する
- BFSでもっと単純に書ける
- https://github.com/firewood/topcoder/blob/master/tco_2012/GreedyTravelingSalesman.cpp
結果
0pt 539th rating 1302 -> 1299 (-3)
3回連続0点なので反省。
練習としては、sample7が通るように書いたらsystem testも通ったので、まあまあ。
コメントを書く
トラックバック - https://topcoder-g-hatena-ne-jp.jag-icpc.org/firewood/20120603
リンク元
- 56 https://topcoder-g-hatena-ne-jp.jag-icpc.org/
- 1 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=8&ved=0CGkQFjAH&url=https://topcoder-g-hatena-ne-jp.jag-icpc.org/firewood/20120106/1325873167&ei=UHbLT56dFqrgmAWimc2CDw&usg=AFQjCNFrbh5G5KRUfLYY3ZwhYI51ziANvg&sig2=I25MIE3E-TxZHHZ3mNwHcw
- 1 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=8&ved=0CGcQFjAH&url=https://topcoder-g-hatena-ne-jp.jag-icpc.org/firewood/20120106/1325873167&ei=4HrLT-DaGMiEmQXM27zmDg&usg=AFQjCNFrbh5G5KRUfLYY3ZwhYI51ziANvg&sig2=4yhkRLUbWDBYtQjPsOQDag
- 1 http://www.google.com/url?sa=t&rct=j&q=srm 544 div1&source=web&cd=4&ved=0CFcQFjAD&url=https://topcoder-g-hatena-ne-jp.jag-icpc.org/firewood/20120530/1338401154&ei=DITMT6KYA8ueiAe81bzHBg&usg=AFQjCNHhsFCSHR660_fhapU7VbypQNAH0Q&sig2=BOaY7QnXtTjDvJIbz-kVBQ&cad=rjt
- 1 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=4&sqi=2&ved=0CF4QFjAD&url=https://topcoder-g-hatena-ne-jp.jag-icpc.org/firewood/20120106/1325873167&ei=QT_NT53KFonYigfqre3XBg&usg=AFQjCNFrbh5G5KRUfLYY3ZwhYI51ziANvg&sig2=Me_CqK2JPNCrl466vKGq-w
- 1 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=4&ved=0CG0QFjAD&url=https://topcoder-g-hatena-ne-jp.jag-icpc.org/firewood/20120106/1325873167&ei=PkDNT4iEPeuTiQfZzuCyBg&usg=AFQjCNFrbh5G5KRUfLYY3ZwhYI51ziANvg&sig2=KmO_Kl0tb3zUBRUJgTXVfA
- 1 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CFUQFjAA&url=https://topcoder-g-hatena-ne-jp.jag-icpc.org/firewood/20120106/1325873167&ei=30LNT-H2NK-bmQXLmdiuAw&usg=AFQjCNFrbh5G5KRUfLYY3ZwhYI51ziANvg&sig2=7f8ejQk_PjUw2aYvCkMaYQ
- 1 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=4&ved=0CF4QFjAD&url=https://topcoder-g-hatena-ne-jp.jag-icpc.org/firewood/20120106/1325873167&ei=MoHNT5SgCMTHmQXcydS3Aw&usg=AFQjCNFrbh5G5KRUfLYY3ZwhYI51ziANvg&sig2=ytx8K25NLCvmRN3GYRFaLA
- 1 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CFYQFjAA&url=https://topcoder-g-hatena-ne-jp.jag-icpc.org/firewood/20120530/1338401154&ei=dP_NT77dHMnomAWghLSiCg&usg=AFQjCNHhsFCSHR660_fhapU7VbypQNAH0Q&sig2=RJZaEmSln1xHxW7MLe22gw
- 1 http://search.yahoo.co.jp/search?p=乗算+速度+速い&aq=-1&ei=UTF-8&pstart=1&fr=top_ga1_sa&b=11