受伤的皇后(dfs)

简介: 受伤的皇后(dfs)

记录一道dfs的题目,

这道题对于刚接触dfs的同学来说算是一道不错的题目了,

能够帮助我们理解得更深刻...

题目:受伤的皇后

题目描述

有一个 n×n 的国际象棋棋盘(n 行 n 列的方格图),请在棋盘中摆放 n 个受伤的国际象棋皇后,要求:


任何两个皇后不在同一行。

任何两个皇后不在同一列。

如果两个皇后在同一条 45 度角的斜线上,这两个皇后之间行号的差值至少为 3 。

请问一共有多少种摆放方案。


输入描述

输入的第一行包含一个整数 nn。


其中,1≤n≤10。


输出描述

输出一个整数,表示答案。


输入输出样例

输入

4

输出

2

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M
import java.io.*;
public class Main {
    static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
    static int max;
    static int[] array = new int[10];
    static int count = 0;//解法数目
    public static void main(String[] args) throws IOException {
        String readLine = br.readLine();
        max = Integer.parseInt(readLine);
        dfs(0);
        bw.write(String.valueOf(count));
        bw.flush();
        br.close();
        bw.close();
    }
    private static void dfs(int n) {
        if (n == max) {
            count++;
            return;
        }
        for (int i = 0; i < max; i++) {
            array[n] = i;
            if (judge(n)) {
                dfs(n + 1);
            }
        }
    }
    private static boolean judge(int n) {
        for (int i = 0; i < n; i++) {
            if (array[i] == array[n] || ((Math.abs(n - i) == Math.abs(array[n] - array[i])) && (n - i < 3))) {
                return false;
            }
        }
        return true;
    }
}
相关文章
|
2月前
|
机器学习/深度学习 Java
leetcode-51:N 皇后
leetcode-51:N 皇后
416 0
leetcode-51:N 皇后
|
2月前
胜利大逃亡---三维数组的广搜
胜利大逃亡---三维数组的广搜
|
机器学习/深度学习 算法 安全
LeetCode - #51 N 皇后
不积跬步,无以至千里;不积小流,无以成江海,Swift社区 伴你前行。如果大家有建议和意见欢迎在文末留言,我们会尽力满足大家的需求。
LeetCode - #51 N 皇后
|
机器学习/深度学习
大臣的旅费-动规/深搜
大臣的旅费-动规/深搜
61 0
|
机器学习/深度学习
N皇后问题
N皇后问题
60 0
|
机器学习/深度学习 算法 JavaScript
从 DFS 到回溯法,再看 N 皇后问题
DFS 是深度搜索,是暴力的,是一条道走到黑的,是一次性搜到底的!那么,搜到底发现没有路了,就得回退去找另外的路,再继续莽着搜!既然要回退,就必须保存走过每个点的所有信息,包括先后顺序;这个回退的过程就叫 回溯。
|
定位技术
宝岛探险(求岛屿大小,染色法) 宽搜 深搜
宝岛探险(求岛屿大小,染色法) 宽搜 深搜
宝岛探险(求岛屿大小,染色法) 宽搜 深搜
|
算法
n皇后问题
n皇后问题
92 0
洛谷P1270 ——“访问”美术馆(dfs读入+树形DP)
洛谷P1270 ——“访问”美术馆(dfs读入+树形DP)
73 0
|
定位技术
深搜dfs 解决全排列,地图搜索最短距离
深搜dfs 解决全排列,地图搜索最短距离