朝日新聞2006年4月7日のパズル横丁問題

問題

Sの矩形から出発し,一度訪れたところは訪れないように桂馬飛びに移動する。移動するのにもっとも歩数のかかるのはどの矩形か?

解答への道(ヒント)

最小のコストで訪れて,もっともコストが掛かるのはどこかっていうこと。

コア部分は以下のようになる。

int cost[6][6];                 // 何歩で到達したか
int mat[6][6] = {               // 到達可能点
  { 0, 1, 1, 0, 1, 0},
  { 1, 1, 1, 1, 1, 0},
  { 1, 1, 1, 1, 1, 1},
  { 0, 1, 1, 0, 1, 0},
  { 0, 0, 0, 0, 0, 0},
  { 0, 0, 0, 0, 0, 0},
};
YesNo get_direction( int row, int col, int direction, int& new_row, int& new_col){
  [row][col]からdirection(8方向を数字で表現)方向に移動できるかをYES/NOで返す。
}
void visit( int level, int row, int col)
{
  if( mat[row][col] == 0) return; // ここは来ることが出来ない
  if( cost[row][col] && level >= cost[row][col]) return;  // 既に訪問したし,以前の方が短い歩数で訪問できた
  cost[row][col] = level;
  int           new_row, new_col;
  for( int i=0; i< 8; i++) {    // 8方向を全て調べる
    if( get_direction( row, col, i, new_row, new_col)) visit( level+1, new_row, new_col);
  }
}

一番遠い箇所が一カ所出力されました。

 

姪っ子が秋葉原に行ってみたいというので先週土曜日連れて行った。

姪の家から秋葉原までは,まずは小田原に出てからなので,Yahooで小田原から秋葉原を検索したところ,結果に笑った。

小田原からだと小田急線を使う方法とJR東海道線を使う方法の2種類を考えていたけど,Yahooでは新幹線を使った経路しか表示されない。

おいおい,新幹線かよ,貧乏人は新幹線を使わないんだよ。

在来線だけの経路が一つも出ないのには困った。

検索の設定に「新幹線以外の有料特急を利用しない」があるけど,「新幹線を使用しない」設定が無い。

小田原から新宿を検索しても「小田急線」は出てこない。一本なのに。

初期のカーナビに近場でも必ず高速道路に誘導するものがあったらしいけど,それに近いな。

解速度