永发信息网

N皇后问题,如果N=4,那完全4叉树怎么画

答案:2  悬赏:80  手机版
解决时间 2021-02-05 11:03
N皇后问题,如果N=4,那完全4叉树怎么画
最佳答案
多叉树算法求n皇后问题,其实就是宽度优先搜索嘛。把每一个状态都看做是树上的一个节点嘛。
全部回答
#include<stdio.h> int count = 0; int isCorrect(int i, int j, int (*Q)[4]) { int s, t; for(s=i,t=0; t<4; t++) if(Q[s][t]==1 && t!=j) return 0;//判断行 for(t=j,s=0; s<4; s++) if(Q[s][t]==1 && s!=i) return 0;//判断列 for(s=i-1,t=j-1; s>=0&&t>=0; s--,t--) if(Q[s][t]==1) return 0;//判断左上方 for(s=i+1,t=j+1; s<4&&t<4;s++,t++) if(Q[s][t]==1) return 0;//判断右下方 for(s=i-1,t=j+1; s>=0&&t<4; s--,t++) if(Q[s][t]==1) return 0;//判断右上方 for(s=i+1,t=j-1; s<4&&t>=0; s++,t--) if(Q[s][t]==1) return 0;//判断左下方 return 1;//否则返回 } void Queue(int j, int (*Q)[4]) { int i,k; if(j==4){//递归结束条件 for(i=0; i<4; i++){ //得到一个解,在屏幕上显示 for(k=0; k<4; k++) printf("%d ", Q[i][k]); printf("\n"); } printf("\n"); count++; return ; } for(i=0; i<4; i++){ if(isCorrect(i, j, Q)){//如果Q[i][j]可以放置皇后 Q[i][j]=1;//放置皇后 Queue(j+1, Q);//递归深度优先搜索解空间树 Q[i][j]=0;//这句代码就是实现回溯到上一层 } } } int main() { int Q[4][4]; int i, j; for(i=0; i<4; i++) for(j=0; j<4; j++) Q[i][j] = 0; Queue(0, Q); printf("The number of the answers are %d\n", count); return 0; }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
动漫银狐会出第二季吗?
隆兴通讯怎么去啊,我要去那办事
我之前减肥结果肉变结实了,没瘦下来,现在肉
中国移动海安宁海南路三星级特约代理店这个地
在稻田中大量捕杀青蛙,可能造成水稻减产,其
请问,2011年福州大学电气自动化学院—电气工
谁有绚香和可苦可乐的あなたと罗马歌词?
A true friend is always helpful. I didn’t
众鑫快餐地址在哪,我要去那里办事
苏州茄汁牛肉面怎么去啊,有知道地址的么
在克隆多利羊的过程中,没有运用的技术手段是
外面是“方框”,里面是个“对勾”的符号怎么
淘宝被判虚假交易后如何处理?
国泰手机勐醒专营店怎么去啊,我要去那办事
副歌部分是什么意思
推荐资讯
美舍·雅阁萝莉美容养生会馆我想知道这个在什
涂润唇膏会有反效果吗?
十年以后的28000万对应的现值是多少
睦孰的意思是什么啊?知道的请说下!
2014款奔驰怎样能把中网大标改成立标
伊味美烤涮炖地址有知道的么?有点事想过去
什么药能软化指甲
到此为止接龙是什么成语
高一物理基础题
当你和女孩聊天 她发哦或者嗯你该怎么回答
一六年坟上添土,天德方是那?
潍坊致达电梯销售有限公司在哪里啊,我有事要
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?