過去ログ

kasama
#19583 昨日はコードがグチャグチャでしたがリファクタリングしましたので記載します。

import java.util.*;
public class Question373 {
 private static final boolean T = true;
 private static final boolean F = false;

 public static void main(String args[]) {
  boolean[][] matrix = { // Incidence行列の行と列を入替え
  //   0 1 2 3 4 5 6 7 8 9 10
  /* 0 */ { T, T, F, F, F, F, F, F, F, F, F },
  /* 1 */ { T, F, T, T, F, F, F, F, F, F, F },
  /* 2 */ { F, T, T, F, T, T, F, F, F, F, F },
  /* 3 */ { F, F, F, T, T, F, T, T, F, F, F },
  /* 4 */ { F, F, F, F, F, T, T, F, T, T, F },
  /* 5 */ { F, F, F, F, F, F, F, T, T, F, T },
  /* 6 */ { F, F, F, F, F, F, F, F, F, T, T }
  };
  List path = new EulerPath(matrix).scan(1, 5);
  System.err.println("オイラーパスは" + path.size() + "通りです。");
 }
}

オイラーパスは120通りです。

訂正:インシデンス行列の行と列が逆でした。直接解法に関係しませんが気持ちが悪いので訂正(10/14)
和歌山   10月14日(火) 20:16:59   MAIL:kasama@s34.co.jp   19592

過去問題一覧へ戻る