USACO Section 1.5.4 [Checker Challenge] Java题解
题意分析:
该题是需要深度优化的八皇后问题,首先看一下,经典八皇后问题的一般解法:
public class Queens {private final static int MAX = 8;// site[i] = j => col:i row:jprivate static int[] site = new int[MAX];private static boolean check(int col){for(int i = 0; i < col; i++){if(site[i] == site[col] || //不在一行上Math.abs(site[col]-site[i]) == col - i) //也不在对角线上return false;}return true;}private static void queens(int col){if(col == MAX);//output();elsefor(int i = 0; i < MAX; i ++){site[col] = i;if(check(col))queens(col+1);}}public static void main(String[] args){queens(0);}}