八皇后 一时失言乱红尘 2022-07-12 12:14 191阅读 0赞 package 搜索; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class 八皇后 \{ static BufferedReader br = new BufferedReader(new InputStreamReader( System.in)); static int arr\[\]\[\] = new int\[9\]\[9\]; static int a\[\] = new int\[9\]; static int n; static int result = 0; private static int readInt() throws IOException \{ int i, sum = 0; while (((i = br.read()) & 48) != 48 || i > 57) ; for (; (i & 56) == 48 || (i & 62) == 56; i = br.read()) sum = sum \* 10 + (i & 15); return sum; \} public static void main(String\[\] args) throws IOException \{ n = readInt(); for (int i = 1; i <= n; i++) \{ for (int j = 1; j <= n; j++) \{ arr\[i\]\[j\] = readInt(); \} \} operaction(1); System.out.println(result); \} private static void operaction(int row) \{ if (row > n) \{ result++; display(); return; \} for (int i = 1; i <= n; i++) \{ if (arr\[row\]\[i\] == 1) \{ int temp = a\[row\]; a\[row\] = i; if (check(row)) \{ arr\[row\]\[i\] = 2; operaction(row + 1); arr\[row\]\[i\] = 1; \} a\[row\] = temp; \} \} \} private static boolean check(int row) \{ for (int i = 1; i < row; i++) if (Math.abs(row - i) == Math.abs(a\[row\] - a\[i\]) || a\[i\] == a\[row\]) return false; return true; \} private static void display() \{ for (int i = 1; i <= n; i++) \{ for (int j = 1; j <= n; j++) \{ System.out.print(arr\[i\]\[j\]); \} System.out.println(); \} System.out.println(); \} \}
相关 八皇后 八皇后问题介绍 八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不 ゝ一世哀愁。/ 2022年12月24日 12:57/ 0 赞/ 122 阅读
相关 八皇后 八皇后 求解思路 可以将八皇后看成全排列问题,因为每次都是在某一行选择某个位置,所以不需要考虑行的问题。每次只需要求出当前行的棋子所在列。所以可以化为全排列问 左手的ㄟ右手/ 2022年10月01日 11:44/ 0 赞/ 172 阅读
相关 八皇后 / Queen 八皇后问题 :递归实现 1. 从第一行开始递归 2. 然后枚举当前行中的每一列, 3. 如果可以 r囧r小猫/ 2022年08月24日 14:25/ 0 赞/ 185 阅读
相关 八皇后 编写出八皇后的算法->递归算法 include <stdio.h> int nCount=0; int noDanger(int row,int 深藏阁楼爱情的钟/ 2022年08月08日 05:15/ 0 赞/ 19 阅读
相关 八皇后 八皇后问题是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇 女爷i/ 2022年07月29日 10:52/ 0 赞/ 205 阅读
相关 八皇后 package 搜索; import java.io.BufferedReader; import java.io.IOException; 一时失言乱红尘/ 2022年07月12日 12:14/ 0 赞/ 192 阅读
相关 八皇后问题 回溯法求解八皇后问题 n皇后问题:n皇后问题是指在一个n\n的国际象棋棋盘上放置n个皇后,使得这n个皇后两两不在同一行,同一列,同一条对角线上,求合法的方案数。 如 小灰灰/ 2022年06月11日 08:49/ 0 赞/ 274 阅读
相关 八皇后问题 枚举法 include<iostream> using namespace std; int a[9]; int check(int n, 蔚落/ 2022年06月06日 00:38/ 0 赞/ 228 阅读
相关 八皇后问题 在国际象棋中,皇后是最强大的一枚棋子,可以吃掉与其在同一行、列和斜线的敌方棋子.八皇后问题是这样一个问题:将八个皇后摆在一张8\8的国际象棋棋盘上,使每个皇后都无法吃掉别的皇 Bertha 。/ 2022年05月18日 05:58/ 0 赞/ 226 阅读
相关 八皇后问题 八皇后问题,以国际象棋为背景:如何能够在 8×8 的国际象棋棋盘上放置八个皇后,使得任何一个皇后都无法直接吃掉其他的皇后?为了达到此目的,任意两个皇后都不能处于 叁歲伎倆/ 2021年09月25日 15:34/ 0 赞/ 460 阅读
还没有评论,来说两句吧...