(step4.3.2)hdu 2553(N皇后问题)
来源:互联网 发布:mac上怎么做u盘启动盘 编辑:程序博客网 时间:2024/06/07 15:59
题目大意:n*n棋盘要放n个皇后,要求意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上。最多几种方案
/* * 2553_1.cpp * * Created on: 2013年8月16日 * Author: Administrator */#include <iostream>using namespace std;int sum,m;int queen[11];int method[11];//用来判断是否同行或者是同斜线bool check(int n){int i;for( i = 0 ; i < n ; ++i){/** *为什么只需要判断是否同列或者同一斜线即可呢??不需要判断同行吗?? * 因为i指的就是行,而i是递增的,所以行就是递增的。所以行肯定不同 * * queen[n] = i;其中n是行的数目,也是皇后的数目,i是列的数目 * queen[i] == queen[n] :是否同列 * abs(queen[i] - queen[n]) == (n - i) :判断是否在一条斜线上(只需要判断底和高是否相等即可) */if(queen[i] == queen[n] || abs(queen[i] - queen[n]) == (n - i)){return 1;}}return 0;}void put(int n){int i;for( i = 0 ; i < m ; ++i){queen[n] = i;if(!check(n)){if( n == m-1){++sum;}else{put(n+1);}}}}int main(){while(scanf("%d",&m)!=EOF,m){memset(queen,0,sizeof(queen));sum = 0;if(method[m] != 0){printf("%d\n",method[m]);}else{put(0);method[m] = sum;printf("%d\n",sum);}}}
- (step4.3.2)hdu 2553(N皇后问题)
- HDU 2553 N皇后问题
- HDU 2553 N皇后问题
- HDU 2553-N皇后问题
- hdu 2553 N皇后问题
- HDU-2553-N皇后问题
- Hdu 2553 N皇后问题
- hdu 2553 N皇后问题
- hdu 2553 N皇后问题
- HDU 2553 N皇后问题
- HDU--2553 -- N皇后问题
- hdu-2553--N皇后问题
- 2553--Hdu--N皇后问题
- N皇后问题 hdu 2553
- HDU 2553 N皇后问题
- hdu 2553 n皇后问题
- HDU 2553 N皇后问题
- hdu-2553-N皇后问题
- Android SDK Manager 下载SDK失败的解决办法
- RTSP流媒体服务器的搭建与测试
- JavaBean的详细及引用
- 《思科九年》电子书 Android 版下载
- 对一组数字排序,最大的放第一位,最小的放第二位,第二大的放第三位,第二小的放第四位,依次类推
- (step4.3.2)hdu 2553(N皇后问题)
- linux下快速编译模块的方法
- U3D需要用到的数学基础知识
- 分类汇总统计的SQL语句 .
- Tiny6410_buttons.c 按键驱动程序
- hdu 1505 hdu 1506 hdu 2870 综合解答
- 对一组字符串排序,使子串总在父串之后
- hdu2870之DP
- VMware_VCP5.0 虚拟化认证原厂培训中文教材 PPT