hdu 2553 N皇后问题
来源:互联网 发布:js点击按钮退出全屏 编辑:程序博客网 时间:2024/06/05 14:08
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2553
dfs的题
1 #include<iostream> 2 #include<stdio.h> 3 #include<math.h> 4 #include<stdlib.h> 5 #include<string.h> 6 using namespace std; 7 const int N=20; 8 int n; 9 int count;//多少种排列组合10 int a[N];//a[i]=j代表的是在i行j列11 int visit[N];//用来排除列,例:a[1]=1;上有皇后,那么visit[a[1]]=1;12 int check(int i,int j)//验证第i行j列13 {14 int k;15 int flag=1;16 for(k=1;k<i;k++)17 {18 if( abs(k-i) == abs(j-a[k]) )//检查是否在斜线相交19 flag=0;20 }21 return flag;22 }23 24 void dfs(int i)//i代表行数25 {26 if(i>n)27 count++;28 else29 {30 int j;31 for(j=1;j<=n;j++)32 {33 if(visit[j]==0 && check(i,j))//检查位置34 {35 a[i]=j;36 visit[j]=1;37 dfs(i+1);38 visit[j]=0;39 }40 }41 }42 }43 44 int main()45 {46 //freopen("in.txt","r",stdin);47 int b[15];48 memset(b,0,sizeof(b));49 int i;50 count=0;51 for(i=1;i<=10;i++)52 {53 n=i;54 memset(a,0,sizeof(a));55 memset(visit,0,sizeof(visit));56 dfs(1);//从第一行开始57 b[i]=count;58 //printf("%d ",b[i]);59 count=0;60 }61 int m;62 while(~scanf("%d",&m))//打表后输出,不然时超63 {64 if(m==0)65 break;66 printf("%d\n",b[m]);67 }68 return 0;69 }
阅读全文
0 0
- 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皇后问题
- HDU-2553-N皇后问题
- Go 编译sqlite3 遇到的问题 + 加快go IDE编译速度
- hdu 1753 大明A+B
- 其他类型转化成DataTable
- TortoiseSVN文件夹及文件图标不显示解决方法(转发)
- zend studio 10破解/汉化(转发)
- hdu 2553 N皇后问题
- PowerDesigner
- hdu1028 Ignatius and the Princess III
- Studio快捷键
- hdu 1426 Sudoku Killer
- shell编程笔记
- hdu 1251 统计难题
- git的工具基本使用
- 多条目加载