题目1140:八皇后

来源:互联网 发布:薪酬优化 劳务外包 编辑:程序博客网 时间:2024/04/28 22:45
import java.io.IOException;import java.io.FileReader;import java.io.InputStreamReader;import java.io.BufferedReader;import java.util.Scanner;import java.util.Vector;import java.util.Arrays;class Main{public static final boolean DEBUG = false;public static Vector<String> v;public static boolean[][] vis;public static byte[] ans;public static void dfs(int cur){//System.out.println("cur=" + cur);if (cur == 8) {String s = new String(ans);//System.out.println("s:" + s);v.add(s);return;}for (int i = 0; i < 8; i++) {if (!vis[0][i] && !vis[1][i - cur + 7] && !vis[2][i + cur]) {ans[cur] = (byte)(i + 1 + '0');vis[0][i] = vis[1][i - cur + 7] = vis[2][i + cur] = true;dfs(cur + 1);vis[0][i] = vis[1][i - cur + 7] = vis[2][i + cur] = false;}}}public static void main(String[] args) throws IOException{Scanner cin;int n, t;if (DEBUG) {cin = new Scanner(new FileReader("d:\\OJ\\uva_in.txt"));} else {cin = new Scanner(new InputStreamReader(System.in));}v = new Vector<String>();vis = new boolean[3][15];ans = new byte[8];dfs(0);t = cin.nextInt();while (t-- > 0) {n = cin.nextInt();System.out.println(v.elementAt(n - 1));}}}

0 0
原创粉丝点击