- C/C++の宿題片付けます 167代目
457 :デフォルトの名無しさん[sage]:2014/06/13(金) 16:22:01.41 ID:M4x6Kn4S - >>456
ttp://codepad.org/Yu5KMoPW とりあえず計算できるようにはなってると思います set関数の引数i(編集後pos_cnt)は、i番目に通る都市を決める関数です。 その中で通る都市を仮定して、次のi+1番目の都市を決めるために再度setを呼び出しています。(元34行目) その際に、通る都市番号をposに保持し(元29行目)、通ったことを示すflagを1にしてます。(元33行目) 通る都市を決める際に、flagが1になっている都市を避けることで、同じ都市に何度も行かないようにしています。(元28行目) iが都市数まで増えると全都市を回ったことになるので、結果をprintで出力してその経路は終わり。(元31行目) 編集後のコードでは、set関数に引数distを追加して、経路をたどっている際にその距離も一緒に計測するようにしました。 全都市を回った際に、これまでの最大距離よりも大きければ保持するようにしてます。 書き方のアドバイスとして 自分の書いたコードが半年後もすぐ意味が分かるように読みやすいようにしたほうがいいですよ 最低限以下に気を付けるくらいですね ・インデントをつけましょう ・変数名は意味のある単語もしくはその省略形にしましょう(1〜2文字で許されるのはループ用の変数iとかjぐらいと思ったほうがいい) ・意味が分かりにくい箇所には適宜コメントを入れましょう
|
- C/C++の宿題片付けます 167代目
459 :デフォルトの名無しさん[sage]:2014/06/13(金) 22:25:12.70 ID:M4x6Kn4S - >>458
ttp://codepad.org/AYNHHZ3P アルゴリズムはほぼ参考ページの丸写しです 参考ページ:ttp://fussy.web.fc2.com/algo/algo3-2.htm
|
- C/C++の宿題片付けます 167代目
460 :デフォルトの名無しさん[sage]:2014/06/13(金) 22:35:52.71 ID:M4x6Kn4S - しまった仕様1が未達ですね
すみませんが上記は破棄で
|
- C/C++の宿題片付けます 167代目
463 :459[sage]:2014/06/13(金) 23:07:16.98 ID:M4x6Kn4S - >>458
ttp://codepad.org/BXC0miZY 無理やりポインタを使うようにしてみた(imageにはかならずpoint経由でアクセス) >>462 似たような感じで変えてみましたw
|