广度优先搜索和深度优先搜索—N皇后问题
来源:互联网 发布:win7不显示网络图标 编辑:程序博客网 时间:2024/05/16 12:59
1.递归回溯法
源代码:
#include <stdio.h>#include <math.h>#define N 15int x[N]; //皇后放置的列数int n; //皇后个数int sum=0; //可行解个数int place(int k){int i;for(i=1;i<k;i++) if(abs(k-i)==abs(x[k]-x[i])||x[k]==x[i]) return 0; return 1;}int queen(int k){int i;if(k>n)sum++;else for(i=1;i<=n;i++) { x[k]=i; if(place(k)) queen(k+1); } return sum;}int main(){printf("Please input n:(n<15)");scanf("%d",&n);printf("%d\n",queen(1));return 0;}
2.迭代回溯法
源代码:
#include <stdio.h>#include <math.h>#define N 15int n;int sum=0;int x[N];int place(int k){int i;for(i=1;i<k;i++)if(abs(k-i)==abs(x[k]-x[i])||x[k]==x[i])return 0;return 1;}int queen(){int t=1;x[1]=0;while(t>0){x[t]++;while(x[t]<=n&&!place(t))x[t]++;if(x[t]<=n){if(t==n)sum++;elsex[++t]=0;}elset--;}return sum;}int main(){printf("Please input n:(n<15)");scanf("%d",&n);printf("%d\n",queen());return 0;}
0 0
- 广度优先搜索和深度优先搜索—N皇后问题
- 深度优先搜索--N皇后问题
- 深度优先搜索和广度优先搜索
- 深度优先搜索和广度优先搜索
- 深度优先搜索和广度优先搜索
- 深度优先搜索和广度优先搜索
- 广度优先搜索和深度优先搜索
- 广度优先搜索和深度优先搜索
- 深度优先搜索和广度优先搜索
- 广度优先搜索和深度优先搜索
- 深度优先搜索和广度优先搜索
- 深度优先搜索和广度优先搜索
- 深度优先搜索和广度优先搜索
- 深度优先搜索和广度优先搜索
- 广度优先搜索和深度优先搜索
- 深度优先搜索和广度优先搜索
- 深度优先搜索和广度优先搜索
- 深度和广度优先搜索
- 微信第三方登陆
- Fragment——Activity与Fragment之间进行通信
- 使用Alcatraz来管理Xcode插件
- LeetCode题解-5. Longest Palindromic Substring
- 1858: [Scoi2010]序列操作
- 广度优先搜索和深度优先搜索—N皇后问题
- 结构体的回顾
- Android图片的三级缓存机制之从网络中获取图片
- 项目间移植代码时的一个感悟——解除依赖链!
- AC自动机
- HTTP协议状态码详解
- Java中String类创建对象内存分析
- 第三周项目4:穷举法解决组合问题(1)
- Leet Code OJ 1. Two Sum [Difficulty: Easy]