n皇后(位运算版)
来源:互联网 发布:gnu与linux 编辑:程序博客网 时间:2024/06/06 09:42
其实我也没觉得多快233333333
#include <cstdio>#include <iostream>#include <algorithm>#include <queue> using namespace std;int uplimit,sum=0,x=0,n;int a[20];queue <int> que;void print()//输出函数{ for(int i=1;i<=n;i++) { int tmp=a[i],cnt=0; while(tmp!=0) { cnt++; tmp=tmp>>1;//除几个2成为0即为行数 } printf("%d ",cnt); } printf("\n");}void dfs(int i,int ld,int rd)//i表示每列的状态,ld表示左对角线的状态,rd表示右对角线的状态{ if(i==uplimit)//全部找到 { sum++; if(sum<=3) print(); return; } else { int pos=uplimit&~(i|ld|rd);//用来找全部的方案 while(pos!=0)//枚举全部的方案 { int p=pos&(~pos+1);//用来找最靠后的0 pos-=p;//减这个位置出去 x++; a[x]=p; dfs(i+p,(ld+p)<<1,(rd+p)>>1); x--; } }}int main(){ scanf("%d",&n); uplimit=(1<<n)-1;//计算全部放满的状态 dfs(0,0,0); printf("%d",sum);//输出方案数}
1 0
- n皇后(位运算版)
- n皇后 - 位运算版
- N皇后位运算版
- N皇后(位运算)
- N皇后 (位运算)
- n皇后 位运算
- n皇后问题位运算版
- n皇后问题位运算版
- n皇后问题位运算版[Matrix67]
- NOJ1267 N皇后(非位运算)
- NOJ1267 N皇后(非位运算)
- n皇后问题(位运算优化)
- N皇后问题(位运算)
- n皇后问题位运算
- N皇后位运算代码
- N(<=32)皇后问题 位运算版
- P1219 N皇后(位运算&普通dfs)
- 求最大公约数(欧几里得算法尾递归版)+N皇后算法(位运算版)
- 系统广播大全
- POJ 2676 Sudoku1 (DFS)
- 07 初始化时钟
- 设计中各单位的转换px、pt、ppi、dpi、dp、sp及IOS的分辨率
- POJ 1470 Closest Common Ancestors
- n皇后(位运算版)
- Http Handler 介绍
- SparkRDD缓存策略
- 微服务之分布式跟踪系统(springboot+zipkin+mysql)
- 剑指Offer系列-面试题12:打印1到最大的n位数
- C++函数参数和返回值
- 栈的链式存储结构
- table表格合并封装的小插件
- Scala冒泡排序、快速排序、插入排序