九度 1140 八皇后
2012-02-15 21:23
253 查看
http://ac.jobdu.com/problem.php?id=1140
直接用的USACO上代码,不解释
直接用的USACO上代码,不解释
#include <stdio.h> #include <stdlib.h> #include <string.h> int N=8; bool placed[15][15]={false}; int diagonals_l[50]={0}; int diagonals_r[50]={0}; bool column_ok[15]={true}; int solutions[93]={0}; int cur=1; bool can_place_queen(int row,int column) { int r=row-column; if(r<0){ r=-1*r+N; } if(column_ok[column]&&!placed[row][column]&&diagonals_l[row+column]<1&&diagonals_r[r]<1){ return true; } return false; } void place_queen(int row) { if(row==N+1){ /*deal with output :) */ int i,j; for(i=1;i<=N;i++){ for(j=1;j<=N;j++){ if(placed[i][j]){ solutions[cur]=solutions[cur]*10+j; break; } } } cur++; } int column; for(column=1;column<=N;column++){ if(can_place_queen(row,column)){ int l=row+column; int r=row-column; if(r<0){ r=-1*r+N; } column_ok[column]=false; placed[row][column]=true; diagonals_l[l]++; diagonals_r[r]++; place_queen(row+1); diagonals_l[l]--; diagonals_r[r]--; placed[row][column]=false; column_ok[column]=true; } } } int main() { memset(column_ok,true,sizeof(column_ok)); place_queen(1); int t; while(scanf("%d",&t)!=EOF){ while(t--){ int n; scanf("%d",&n); printf("%d\n",solutions ); } } }
相关文章推荐
- 九度[1140]八皇后
- 九度 oj 题目1140:八皇后
- 【LeetCode】N-Queens && 【九度】题目1140:八皇后
- 九度OJ 1140 八皇后
- 八皇后代码--九度oj-1140
- 八皇后代码--九度oj-1140
- 九度 1140 题目1140:八皇后
- 九度 1140 - 回溯 - 八皇后
- 九度OJ 1140 八皇后(回溯递归第三发)
- 九度oj 素数 1047,1163,1040,1140
- OJ_1140 八皇后
- 题目1140:八皇后
- 九度1140解题报告
- 1140_八皇后
- 九度oj 1140
- 九度OJ(字符串、位移操作、背包、递归、dp栈模拟、八皇后)
- 九度OJ 1547 出入栈 -- 动态规划
- 洛谷 P1219 ---- 八皇后
- 九度:1014<排序>
- Python基于生成器迭代实现的八皇后问题示例