标签:blog io os sp for 2014 问题 log amp
#include<iostream> using namespace std; int vis[3][30];//分别表示列,主对角线和副对角线是否被占用,若用(row,col)表示第row行第col列位置(row,col)均从0开始 //则列所在位置为col,主对角线所在位置为n-row+col,副对角线所对应的位置为row+col int ans ,MAXN; void dfs(int row) { if (row == MAXN) { ++ans; return ; } else { for (int col =0; col <MAXN; ++col) { if (!vis[0][col] && !vis[1][col+row] && !vis[2][MAXN-row+col]) { vis[0][col] = vis[1][col+row] = vis[2][MAXN-row+col] = 1; dfs(row+1); vis[0][col] = vis[1][col+row] = vis[2][MAXN-row+col] = 0; } } } } int PlaceQueenMethodNum(int n) { /*在这里实现功能*/ MAXN =n; ans =0; memset(vis,0,sizeof(vis)); dfs(0); return ans; } int main() { ans =0; int last[11]; for (int i=1; i < 11; ++i) { ans =0; last[i] = PlaceQueenMethodNum(i); } int n; while (cin>>n && n != 0) { cout<<last[n]<<endl; } return 0; }
标签:blog io os sp for 2014 问题 log amp
原文地址:http://blog.csdn.net/xiaohanstu/article/details/41863373