hdu2553
来源:互联网 发布:hough算法检测直线 编辑:程序博客网 时间:2024/06/12 00:31
先是之前的八皇后问题
回溯法
输出八皇后的每一种情况,共92种
#include <iostream>#include <cstring>#include <cmath>using namespace std;int mp[1005],ans,coutt[1005][1005];void is(int x){ if(x==8) { ans++; memset(coutt,0,sizeof(coutt)); cout<<"No. "<<ans<<endl; for(int i=0;i<8;i++)//为了输出 coutt[mp[i]][i]=1; for(int i=0;i<8;i++) { for(int j=0;j<8;j++) { cout<<coutt[i][j]<<" "; if(j==7) cout<<endl; } }} else for(int i=0;i<8;i++) { int ok=1; mp[x]=i; for(int j=0;j<x;j++)//判断是否与之前的矛盾 { if(mp[j]==i||abs(mp[j]-i)==abs(j-x))//显然不同行了,再判断是否同列,同斜只需判断,行减行是否等于列减列 { ok=0;break;//如果矛盾,标记一下,退出,继续搜本行的下一列 } } if(ok) { is(x+1);//继续找下一行,找到最后一行的时候,退出,又会回到第i行,继续判断其他情况 } }}int main(){ is(0); return 0;}n皇后问题,只需要将八换成n,统计每个n多少种情况
#include <iostream>#include <cstring>#include <cmath>using namespace std;int mp[1005],n,ans;void is(int x){ if(x==n) ans++; else for(int i=0;i<n;i++) { int ok=1; mp[x]=i; for(int j=0;j<x;j++) { if(mp[j]==i||abs(mp[j]-i)==abs(j-x)) { ok=0;break; } } if(ok) { is(x+1); } }}int main(){ while(cin>>n&&n) { memset(mp,0,sizeof(mp)); ans=0; is(0); cout<<ans<<endl; } return 0;}
0 0
- hdu2553
- hdu2553
- HDU2553
- HDU2553
- hdu2553
- HDU2553
- HDU2553
- hdu2553.c
- hdu2553 N皇后问题
- HDU2553 N皇后问题
- hdu2553 回溯法
- hdu2553(n皇后)
- HDU2553:N皇后问题
- hdu2553 n皇后问题
- hdu2553解题报告
- hdu2553 N皇后问题
- hdu2553 n皇后问题
- HDU2553 N皇后问题
- JS XLS/X的使用心得
- CSU 1804 有向无环图【湖南省第十二届大学生计算机程序设计竞赛 B题 DAG】
- POJ3463 求次短路径条数
- hibernate 逆向工程对数据库进行CRUD操作
- MySQL特殊需求总结及其实现方法
- hdu2553
- http://blog.csdn.net/u010687392/article/list/5 http://blog.csdn.net/jdsjlzx
- Python 环境变量
- 利用htaccess将全站无效url转到首页
- 如何防止 CC攻击
- 窗口的生命周期分析
- 《OpenGL ES 2.0 Programming Guide》第12章“最简单的FBO Depth Texture”示例代码【C语言版】
- [LeetCode]SudokuSolver解决数独问题
- My97DatePicker日期插件使用说明