范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

四皇后问题求解

  本章内容来自《妙趣横生的算法》一书中。
  回溯法是一种非常有效,适用范围相当广泛的算法设计思想。许多复杂的问题,规模较大的问题都可以使用回溯法求解。因此回溯法又有"通用解题方法"的美称。
  回溯法的基本思想是:在包含问题的所有解的解空间树中,按照深度优先搜索的策略,从根结点出发深度探索解空间树。当探索到某一结点时,要先判断该结点是否包含问题的解,如果包含,就从该结点出发继续探索下去;如果该结点不包含问题的解,那就说明以该结点为根结点的子树一定不包含"剪枝"操作。
  如果应用回溯法求解问题的所有解,要回溯到解空间树的树根,这样根结点的所有子树都被探索到才结束。如果只要求解问题的一个解,问题的最终解,因此要跳过对以该结点为根的子树的系统探索,逐层向其祖先结点回溯。这个过程叫做解空间树的那么在探索解空间树时,只要搜索到问题的一个解就可以结束了。
  应用回溯法的思想求解四皇后问题
  分析:
  上面一节中已经详细介绍了回溯法解决四皇后问题的基本过程。在这里将给出具体的算法描述和程序清单。
  其实在解决四皇后问题时,并不一定要真的构建出这样一棵解空间树,它完全可以通过一个递归回溯来模拟。所谓解空间树只是一个逻辑上的抽象。当然也可以用树结构来真实地创建出一棵解空间树,不过那样会比较浪费空间资源。 #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;								/*否则返回1*/ }  void Queen(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(" ");         } 		 printf(" ");         getche(); 		count++; 		return;             }    for(i=0;i<4;i++)    { 	   if(isCorrect(i,j,Q))				/*如果Q[i][j]可以放置皇后*/         { 		             Q[i][j] = 1;            		/*放置皇后*/             Queen(j+1,Q) ;				/*深度优先搜索解空间树*/ 			Q[i][j] = 0;         }    } }  main() {     int Q[4][4]; 	int i,j; 	for( i=0;i<4;i++)        for( j=0;j<4;j++)             Q[i][j] = 0;					/*初始化数组Q*/     Queen(0,Q);							/*执行四皇后求解*/ 	printf("The number of the answers of FOUR_QUEEN are %d",count);     getche(); }
  运行结果:

39元移动WIFI闪现。4G用户全网不限量!还是你最懂用户的心如今,全行业加快5G网络建设,内容应用逐渐丰富,产业生态也不断完善。5G发展取得了积极成效。5G也成为人们生活中的一大热点。然而,人们并没有因此而高兴起来。一方面,5G资费门槛过高放弃雷达,特斯拉蒙眼狂奔特斯拉的故事,总是充满戏剧性的逆转。前段时间,一张摄于美国佛罗里达州的照片引发了业界热议。图中,一辆特斯拉ModelY顶着激光雷达在道路上行驶,虽然旁观者尚不清楚它究竟在做什么,是华为注册鲁班商标,网友有辱古代科学家据天眼查APP显示,近日,华为技术有限公司申请注册鲁班商标,注册号56255833,国际分类为科学仪器,目前商标状态为商标申请中。其实,在这之前,华为就已经申请注册过华为鲁班的商标华为28岁员工薪资曝光优秀的人,注定会登顶原创大谦聊职场各位粉丝大家好,我是大谦之前,华为的一位前员工,曾在网上晒出自己的工资表。月薪最高的时候年终奖和股票分红有18万,其他月份基本是4万多。总收入那一栏显示着100多万的有望成最便宜的5G平板?台电T405G版将重新定义性价比5G作为当前消费市场先锋,目前各大厂商先后进入到5G平板市场,首先是小米荣耀率先布局,后来者居上,如今台电与酷比也将推出5G平板。事实上,台电早在4月份便已经曝光了首款5G平板的消杭州富婆朱丽丽16岁白手起家,集资14亿逃亡泰国,最终被捕最近,加密货币是创新还是庞氏骗局?引起了社会的关注。加密货币比特币从起先的单价9000美元升至6。4万多美元,后又跌破3万美元,短短一年时间,它就像一个过山车行情,让金融圈绷紧心弦手机大厂万元机备货30万,卖出1万多?小米MIXFold不背这锅一线品牌备货30万,只卖出1万多?小米MIXFold不背这锅!近日有媒体报道,某一线品牌为了冲击高端市场,推出的售价近万元的手机备货30万部,但结果仅售出1万多部,由此造成几十亿的退出程序的App总是自己突然启动?当心隐私泄露自己启动的App或是在上传用户信息退出程序的App总是自己突然启动?当心隐私泄露已经退出的App半夜突然启动,很久没有用过的App自己产生流量记者调查发现,这些后台偷跑的App给用魅族全智能手表与Lipro智能吸顶灯发布钛快讯魅族全智能手表MEIZUWatch钛媒体5月31日消息,魅族科技(MEIZU)举行线上新品发布会,正式发布魅族全智能手表MEIZUWatch,并宣布LiproLED智能吸顶灯正式发智能手表出货量暴增,但国产小米OPPOvivo一加等拖后腿了随着科技的发展,智能设备已经成为生活中不可或缺的产品,提高人们的生活质量,帮助人民更好地适应生活改善生活,其中智能手表销量这两年出现了暴涨趋势,而在这里领域,苹果智能手表销量依然遥魅族全智能手表MEIZUWatch支持全天候健康监测IT之家5月31日消息今日下午,在魅族的智能生活发布会上,魅族全智能手表MEIZUWatch正式发布。MEIZUWatch支持全天候健康监测,魅族表示,MEIZUWatch使用不易
想买一个家庭用的打印机,也不知道买个什么样的好,有没有哪位大师懂?最近一段时间,回答了七八个关于家用打印机的问题。今天的这个还是这类的问题。下边我详细回答一下,到底家用打印机应该选择那类机型。我们从家用打印机的使用范围,看一下。家用的打印机,主要现在装电信宽带要多少钱一个月?您好,中国电信的美好家套餐有7档可选,229档以及上可享千兆宽带,需要看用户选择的档次了。电信宽带有多种套餐,不同套餐对应的资费是不同的,另外不同地区的电信宽带套餐资费及优惠也有所小米MIX4后再无厂商跟进屏下摄像头手机,是否说明屏下方向错了?文小伊评科技方向确实错了。倒是有厂商跟进屏下摄像头,譬如最近发布的中兴AXON30屏下版以及即将发布的AXON40都会搭载类似的技术。不过我们也需要看到,虽然仍有品牌发布采用类似技华为手机照相添加水印有什么作用?现在除了华为手机,OPPOvivo小米的手机都可以自动添加机型水印,主流的手机当中可能只有苹果没这个功能。不过华为手机的水印并不是默认开启的,必须用户手动开启才会显示出来。具体的方苹果手机隐私安全比国产手机强很多吗?说实话苹果的系统确实好用,但近年来国产系统的功能也太丰富了点,现在在我这五五开只能说。特别是隐私安全方面,我觉得国产的确实做的很不错,就拿我对象用的OPPOFindX5Pro的Co苹果iPhone13pro安兔兔跑分1009068正常吗?iPhone13Pro是一款可以给朋友们带来极致享受的手机,性能强悍,优化极致,堪称一经典,是果粉们的最爱之一,很多友友们也很在乎这款手机跑分多少合适?下面介绍下,这款手机的具体参新共委全称是什么,是个做什么的机构?新共委成立的目的是发展示范集体经济,创新集体资本市场,倡导企业社会责任,聚合跨盈共富体系,全面落实乡村振兴,实现全民共同富裕!新共委致力于帮助政府和企业之间企业和企业之间企业和全民线上办公协同有哪些工具可以推荐?推荐我们团队正在使用的无忧企业文档,它是一款企业级在线文档,可以协同办公,支持多人在线同时编辑,信息实时同步,私有化部署,支持开源,成本低,是中小企业不错的选择。产品功能方面集成多你如何看待所谓机械化自动化智能化能解决一切人口问题的思潮?AI取代了人类,所以解决了一切人类问题不只是人口哦。三十年前的人们还以为到了二十一世纪机器人就能普及,但是到了现在机器人普及了吗?现在谈论得比较多的是人工智能,有人认为人工智能会取网付怎么样?网付为温州专帮信息科技有限公司旗下聚合支付品牌,属于第四方线下支付行业头部企业,在支付领域占据着较强的市场份额。网付是两大支付平台官方授权服务商,享有官方活动资质特权,深耕支付领域苹果AppStore应用年交易额100万美元以下需缴15佣金财经网科技4月19日讯,据IT之家消息,苹果去年推出了支持小企业和独立开发者的应用商店小企业项目(AppStoreSmallBusinessProgram),将应用内年交易额在10