当前位置: 首页 > news >正文

免费网站平台推荐电商运营培训课程有哪些

免费网站平台推荐,电商运营培训课程有哪些,西安cms模板建站,政府网站建设栏目内容原文链接一天课下,张老板研究起了国际象棋,渴望完美的他更改了棋盘的大小,在N*N的方格棋盘放置了N个皇后,希望它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成4…
原文链接
一天课下,张老板研究起了国际象棋,渴望完美的他更改了棋盘的大小,在N*N的方格棋盘放置了N个皇后,希望它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上) 
张老板把这个艰巨的任务交给了你,对于给定的N,求出有多少种合法的放置方法。 

Input共有若干行,每行一个正整数N≤10,表示棋盘和皇后的数量;如果N=0,表示结束。Output共有若干行,每行一个正整数,表示对应输入行的皇后的不同放置数量。Sample Input

1
8
5
0

Sample Output

1
92
10

 

第一次看到这个题感觉很难,后来通过看视频学会了一种递归算法来解这道问题,想明白后还是很有意思的,不过递归是一种很低效的算法,提交的时候TEL了,正确的解法应该是用回溯算法,以后有时间再理解

递归算法(低效)

#include<stdio.h>
#include<string.h>int count = 0;
int t;int notDanger(int row, int j, int (*arr)[10])
{int flag1, flag2, flag3, flag4, flag5;int i, k;flag1 = flag2 = flag3 = flag4 = flag5 = 0;//判断列是不是危险for( i = 0; i < t; i++ ){if(arr[i][j] == 1){flag1 = 1;break;}}//判断左上方for( i = row, k = j; i >= 0 && k >= 0; i--, k-- ){if(arr[i][k] == 1){flag2 = 1;break;}}//判断左下方for( i = row, k = j; i < t && k >= 0; i++, k-- ){if(arr[i][k] == 1){flag3 = 1;break;}}//判断右上方for( i = row, k = j; i >= 0 && k < t; i--, k++ ){if(arr[i][k] == 1){flag4 = 1;break;}}//判断右下方for( i = row, k = j; i < t && k < t; i++, k++ ){if(arr[i][k] == 1){flag5 = 1;break;}}if(flag1 == 1 || flag2 == 1 || flag3 == 1 || flag4 == 1 || flag5 == 1)return 0;elsereturn 1;
}void nQueen(int row, int n, int (*arr)[10])
{int arr2[10][10], i, j;for( i = 0; i < n; i++ ){for( j = 0; j < n; j++ ){arr2[i][j] = arr[i][j];}}if(row == n)count++;else{//该位置没有危险for( j = 0; j < n; j++ )        //这一部分代码其实往下会产生很大的容量{                                       //有时候自己会在这部分,搞混。if(notDanger(row, j, arr)){for( i = 0; i < n; i++ ){arr2[row][i] = 0;}arr2[row][j] = 1;nQueen(row+1, n, arr2);}}}
}int main()
{int arr[10][10], i, j;while(scanf("%d", &t) != EOF && t){count = 0;for( i = 0; i < t; i++ ){for( j = 0; j < t; j++ ){arr[i][j] = 0;}}nQueen(0, t, arr);if(count == 0)printf("None\n");elseprintf("%d\n", count);}return 0;
}                            

 

 

回溯算法

#include<stdio.h>
#include<string.h>int n,tmp;
int map[11];void DFS(int k)
{int i,j,flag;if(k==n+1){tmp++;return;}else{for(i=1;i<=n;++i){map[k]=i;flag=1;for(j=1;j<k;++j){if(map[j]==i||i-k==map[j]-j||i+k==map[j]+j)   // 注:1、i=map[k]  2、不在同一条斜线的两点的含义是行标到对角线的的距离不相等
                {flag=0;break;}}if(flag)DFS(k+1);}}
}int main()
{int i,m;int ans[11];for(n=1;n<=10;++n){tmp=0;DFS(1);ans[n]=tmp;}while(scanf("%d",&m),m){printf("%d\n",ans[m]);}return 0;
}
View Code

 

转载于:https://www.cnblogs.com/ruruozhenhao/p/8150572.html

http://www.lbrq.cn/news/2802025.html

相关文章:

  • 做网站需要花费那方面的钱找平台推广
  • 网站规划说明书友情链接是外链吗
  • 福州网站制作建设优化网站排名需要多少钱
  • seo网站设计费用排名轻松seo 网站
  • 云浮 网站建设免费网络营销平台
  • 招聘网站花钱做的简历有用没百度官方官网
  • 兰州微信信息平台网站建设公司网页网站建设
  • 怎么做让网站排名靠前企业网站seo服务
  • 网站搭建有分谷歌关键词智能调词工具
  • 鲜花网站建设主要内容江门搜狗网站推广优化
  • 佛山禅城区网站建设公司推广方案100个
  • apple网站设计网站链接查询
  • 网站开发需要的软件有哪些seo优化工作内容做什么
  • 专业建设网站应该怎么做软文网站推广
  • 企业网站制作建设的框架有哪几种淘宝关键词优化
  • 做网站找图片抖音seo什么意思
  • 做网站能不能赚钱竞价推广代运营企业
  • 做外贸重新设计网站如何seo网站推广
  • 行业网站定位企业网络营销推广案例
  • 书法网站优化关键词关键词优化策略
  • 网站建设培训深圳seo关键词排名优化方法
  • 陕西建设部网站官网广州推广优化
  • 自己做网站要买服务器吗阿里巴巴官网首页
  • 石油网页设计与网站建设脑白金网络营销
  • 网站设计排名网站成都专业的整站优化
  • 苏州行业网站建设费用网上接单平台有哪些
  • 帮人做网站推选的公司百度推广平台登录网址
  • 深圳北网站建设线上销售水果营销方案
  • 广州高端品牌网站建设后台管理便捷手机百度一下
  • 北京网站建设公司飞沐seo排名优化
  • 【系统信息相关】datecal命令
  • 【尝试】在macOS上安装cvat
  • 计算机视觉第一课opencv(三)保姆级教学
  • Linux 网络命令大全
  • 8.21IPSEC安全基础后篇,IKE工作过程
  • 在线课程|基于SprinBoot+vue的在线课程管理系统(源码+数据库+文档)