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

银川做网站的公司做网站应该学什么专业

银川做网站的公司,做网站应该学什么专业,微信官网手机版,书店如何做网站提示#xff1a; 橙色字体为需要注意部分#xff0c;红色字体为难点部分#xff0c;会在文章“重难点解答”部分精讲。 题目链接 蓝桥杯2023年第十四届省赛真题-岛屿个数 - C语言网 题目理解 这道题让我们求岛屿个数#xff0c;那么我们就应该先弄懂#xff0c;对于一…    提示 橙色字体为需要注意部分红色字体为难点部分会在文章“重难点解答”部分精讲。 题目链接 蓝桥杯2023年第十四届省赛真题-岛屿个数 - C语言网 题目理解  这道题让我们求岛屿个数那么我们就应该先弄懂对于一个岛的定义是什么。我当时就因为没弄明白这个困扰很久所以会将细一点 让我们直观感受下 上图所示情形是一个岛因为外面有了一圈陆地将里面的小陆地包围了起来你可以想象成海岛中的池子中有一块大石头右边的图是我p的是丑了点主要为了便于理解。 而如果是以下情形就变成了两个岛 你可以理解为海水流动性更强而海岛的岩石又不可能衔接的严丝合缝。海水从那个缺口的地方流了进去因此中间小块陆地并没有被外圈陆地包围这种情况下是两个岛。 那么不难理解题目当中给出的第二组示例为什么是3个岛了吧 话不多说我们继续向下进行。 解题思路  1.核心思想 我们用题目给出的第二组用例来讲如下呢就是地图。 然后我们以00为起点使用dfs将外海全部标记为2为了确保00是外海且外海是相通的方便dfs展开我们将地图外部扩展一圈0。 dfs展开将外海全部标记为2 完成 然后对全图进行查找如果有满足标记为‘1’的陆地且与外海相邻对其进行dfs展开标记为3。每进行一次dfs岛屿个数就加1。 2.具体做法  这段代码的思路是通过深度优先搜索DFS来解决问题。下面是代码的详细解释 首先定义了一个二维数组map来表示地图其中map表示格子的状态。0表示海洋1表示未标记的陆地2表示已标记的海洋3表示已标记的陆地。 接下来定义了两个递归函数dfs_sea和dfs_island用于进行深度优先搜索。 dfs_sea函数用于将外海的格子标记为2。从给定的坐标(0, 0)开始如果当前格子是未访问的海洋即map[x][y] 0则将其标记为2并递归调用dfs_sea函数对周围的8个格子进行展开。 dfs_island函数用于将与外海相连的未标记的陆地格子标记为3。从给定的坐标(j, k)开始如果当前格子是未标记的陆地且该格子的上一个上下左右都可以我这里用的是上格子为外海即(1map[j][k])(2map[j-1][k])则将其标记为3并递归调用dfs_island函数对周围的4个格子进行展开。 接下来将二维数组map全部初始化为0。 调用dfs_sea函数从坐标(0, 0)开始将外海的格子标记为2。 接下来使用嵌套循环遍历地图的每个格子如果某个格子是未标记的陆地且与外海相连即当前格子为1上方格子为2则调用dfs_island函数对该陆地进行标记并将计数器count加1。 最后输出计数器count的值表示与外海相连的未标记陆地的数量。 完整代码  #includestdio.h int m,n,map[52][52]; void dfs_sea(int x,int y) {if((x0xm1)(y0yn1)){if(0map[x][y])//海水是周围8块进行展开{map[x][y]2;dfs_sea(x,y1);dfs_sea(x,y-1);dfs_sea(x1,y);dfs_sea(x1,y1);dfs_sea(x1,y-1);dfs_sea(x-1,y);dfs_sea(x-1,y1);dfs_sea(x-1,y-1);}} } void dfs_island(int x,int y) {if((x0xm1)(y0yn1)){if(1map[x][y])//陆地是周围4块进行展开{map[x][y]3;dfs_island(x1,y); dfs_island(x-1,y); dfs_island(x,y1);dfs_island(x,y-1);}} } main() {int number;scanf(%d,number);for(int i0;inumber;i){int count0;scanf(%d%d,m,n);for(int j0;jm1;j)//将数组全部初始化为0{for(int k0;kn1;k){map[j][k]0;}}for(int j1;jm;j)//输入地图{for(int k1;kn;k){scanf(%1d,map[j][k]);/*‘%1d’的含义为输入长度为1的整形如果不限制长度则‘11101’会被当场一个数据而不是5个数据*/}}dfs_sea(0,0); //从00处进行dfs将外海全部标记为数字2for(int j1;jm;j){ for(int k1;kn;k){if((1map[j][k])(2map[j-1][k])) /*当某坐标是未标记过的陆地且其与外海相连对其dfs*/{dfs_island(j,k);count;}}}printf(%d\n,count);} } 重难点解答 为什么海水8方展开陆地4方展开 如果在这里有问题应该回去再看一下题目理解部分。因为海水可以从陆地的缝隙流过去也就是说海水可以斜着进行扩散而陆地却只能上下左右展开。 ———如有问题欢迎评论区提问———
http://www.eeditor.cn/news/121099/

相关文章:

  • iis6.0建立网站网站建设费 科目
  • 网站打开速度电子商城建设
  • 长沙网站建设有限公司物流专线做网站
  • 深圳营销型网站建设公司选择哪家好网络综合设计实验报告
  • 贵州建设监理网站培训通知栏网站创建桌面快捷方式
  • 企业网站策划文案亚马逊跨境电商运营
  • 网站建设网站源码青岛网站制作工具
  • 怎么设计网站可以做水果的团购网站
  • 郑州网站设计 郑州网站开发重庆造价协会官网
  • 建设网站大全企业网站管理系统教程
  • 合肥如何做百度的网站宁波seo公司网站推广
  • 室内设计装修网站网站建设企业服务
  • 网站用什么系统好省建设厅官方网站
  • 建设厅网站生成案卷生成不了wordpress logo img
  • 做英文网站需要多少网站策划书籍推荐
  • 桐梓县工程建设交易网站做简历的网站
  • 怎样在织梦后台里面做网站地图seo是哪个国家
  • 江苏住房和城乡建设厅官方网站6如何创建网页模板
  • 访问的网页正在升级中网站结构优化包括什么
  • 创建一个网站所需的成本快速做网站用什么软件
  • 网站建站哪个好设计制作生态缸
  • 电子商务网站建设工资具有口碑的柳州网站建设公司
  • 我的网站百度怎么搜索不到了iis怎么搭建设计网站
  • 青岛联通网站备案wordpress增加用户
  • 企业网站建设外包做app网站制作
  • 做网站logo的网站商城网站建设公司地址
  • .net做网站c#桂平网站建设
  • asp.net网站建设项目实战 董义革wordpress有趣的插件
  • 做网站的语烟台企业建站系统模板
  • 网站建设的法律依据网站建设模板网站