题目1254:N皇后问题
来源:互联网 发布:浙江大学 人工智能 编辑:程序博客网 时间:2024/05/22 12:31
import java.io.BufferedInputStream;import java.io.PrintWriter;import java.util.Arrays;import java.util.Scanner;public class Main { public static void main(String[] args){ Scanner cin = new Scanner(new BufferedInputStream(System.in)) ; PrintWriter cout = new PrintWriter(System.out) ; int[] dp = new int[14] ; for(int i = 3 ; i <= 13 ; i++) dp[i] = new Task().solve(i) ; while(cin.hasNext()){ cout.println( dp[cin.nextInt()] ) ; // cout.flush() ; } cout.flush() ; } }class Task{ boolean[][] used ; int n ; int solve(int n){ this.n = n ; used = new boolean[n][n] ; for(int i = 0 ; i < n ; i++) Arrays.fill(used[i] , false) ; return dfs(0) ; } int dfs(int row){ if(row == n) return 1 ; int sum = 0 ; for(int col = 0 ; col < n ; col++){ if(valid(row , col)){ used[row][col] = true ; sum += dfs(row+1) ; used[row][col] = false ; } } return sum ; } boolean valid(int row , int col){ for(int r = 0 ; r < row ; r++){ if(used[r][col]) return false ; } int x = row , y = col ; while(x >= 0 && y >= 0){ if(used[x][y]) return false ; x-- ; y-- ; } x = row ; y = col ; while(x >= 0 && y < n){ if(used[x][y]) return false ; x-- ; y++ ; } return true ; } }
1 0
- 题目1254:N皇后问题
- 题目:N皇后问题
- 题目1254:N皇后问题(DFS)
- 九度 题目1254:N皇后问题
- 题目:N皇后问题 II
- 【LeetCode】N-Queens II && 【九度】题目1254:N皇后问题
- N*N皇后问题
- 回溯法 N皇后问题 hud题目2553
- HDOJ 题目2553 N皇后问题(dfs)
- 递归和回溯经典题目--n皇后问题
- 八皇后 n皇后 问题
- 八皇后N皇后问题
- N皇后问题
- n皇后问题
- N皇后问题
- N 皇后问题
- N皇后问题
- N皇后问题算法
- .framework以及.a合并相关
- Android自动化测试中uiautomator批改uiautomatorviewer获取不到动态界面的缺陷
- lucene详解
- swift错误:expected a digit after integer literal prefix
- iwork8平板电脑安装ubuntu,Z3735d/f系列CPU通用
- 题目1254:N皇后问题
- Activity,Fragment数据回传
- 4-3-串的块链存储结构-串-第4章-《数据结构》课本源码-严蔚敏吴伟民版
- 06-TOM汤姆猫
- Linux系统操作mysql数据库
- Typedef 学习
- POJ 3254 Corn Fields (状压dp)
- bug1:unrecognized selector sent to instance
- [Django]SE项目回忆录(二)-注册/登录功能的实现及细节