土下座しながら探索中

主に競技プログラミング

巡回セールスマン問題

POJ 2907 : Collecting Beepers

問題リンク : 2907 -- Collecting Beepers問題概要: H*Wのグリッドが存在する そのグリッド上のある点から指定された複数の点を全て任意の順番で訪れ、最終的にまた最初の点に戻ってくるまでの最小移動回数を求めよ 点は最大10まで指定される解法: 巡回…

AOJ 1320 : City Merger

問題リンク:City Merger | Aizu Online Judge 解法: 巡回セールスマン問題みたいであったcost[i][j] := 文字列jを文字列iの後ろにつなげてできる文字列の長さから文字列iの長さを引いた値dp[1 for i 0..n // 初期化 これ以外はinf dp[1<<i][i] = s[i].length() //s[i] は 文字列i for S i 0..(1<<n)-1 for from 0..n //状態Sでfromからtoへ行く if !((S>>from) & 1) //まだ</i][i]>…