位运算搜索之N皇后
来源:互联网 发布:java轻量级javaee开发 编辑:程序博客网 时间:2024/05/16 05:41
#include <cstdio>#include <cstdlib>#include <ctime>long sum = 0, lim;void test(long row, long ld, long rd){ if (row != lim){ long pos = lim & ~(row | ld | rd);//可以放的位置 while (pos){//枚举每个位置 long p = pos & -pos; pos -= p; test(row | p, (ld | p) << 1, (rd | p) >> 1);//斜边的影响在换行后会移动 } } else sum++;}int main(){ time_t tm; int n; printf(" 需要计算的皇后数量\n"); scanf("%d", &n); tm = time(0); if ((n < 1) || (n > 32)){ printf(" 只能计算1-32之间\n"); exit(-1); } printf("%d 皇后\n", n); lim = (1 << n) - 1; test(0, 0, 0); printf("共有%ld种排列, 计算时间%d秒 \n", sum, (int) (time(0) - tm));}/*在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上。你的任务是,对于给定的N,求出有多少种合法的放置方法。*/
阅读全文
0 0
- 位运算搜索之N皇后
- n皇后 位运算
- n皇后 - 位运算版
- N皇后位运算版
- n皇后问题位运算
- N皇后(位运算)
- N皇后位运算代码
- N皇后 (位运算)
- 搜索之N皇后问题
- n皇后问题位运算版
- NOJ1267 N皇后(非位运算)
- NOJ1267 N皇后(非位运算)
- 用位运算解n皇后问题
- n皇后问题位运算版
- n皇后问题位运算版[Matrix67]
- n皇后问题-位运算求解
- N皇后-回溯-位运算解法
- HDU 2553 位运算求N皇后
- 线程同步知识点+案例(子线程父线程交替执行,输出10遍我爱你)
- Git:Please enter a commit message to explain why this merge is necessary
- React API
- Android so逆向基本知识总结
- 并行图计算: GraphX 的 pregel 接口
- 位运算搜索之N皇后
- 程序员,除了代码外,在职业生涯中你还需要注意什么?(二)
- Oracle中,利用sql语句中的函数实现保留两位小数和四舍五入保留两位小数
- 变量命名
- 为什么优酷的《楚乔传》画质更清晰?独家解密窄带高清技术
- JavaScript基础(三)
- caffe FCN Ubuntu16.0
- SpringBoot系列(5)---SpringBoot-Web和SpringBoot基础
- 实现两个变量的互换(不借助第三个变量)