C++程序以找出将所有单元格转换为黑色所需的迭代次数

c++程序以找出将所有单元格转换为黑色所需的迭代次数

假设,我们有一个包含两种类型单元格的网格;黑细胞和白细胞。黑色单元格表示为“#”,白色单元格表示为“.”。网格以字符串数组形式提供给我们。现在,我们必须执行以下操作。

我们将每个白色单元格转换为黑色单元格,并与黑色单元格共享一侧。我们执行此操作,直到网格的每个单元格都变成黑色。

我们计算将网格的所有单元格转换为黑色所需的迭代次数。一开始的网格必须包含一个黑色单元格。

因此,如果输入类似于 h = 4, w = 4, grid = {“#…” , “.#..” , “….”, “…#”}

立即学习“C++免费学习笔记(深入)”;

#....#...... ...#

那么输出将为3。

需要3次迭代才能转换所有单元格为黑色。

步骤

为了解决这个问题,我们将按照以下步骤操作 –

Define an array dx of size: 4 containing := { 1, 0, - 1, 0 }Define an array dy of size: 4 containing := { 0, 1, 0, - 1 }Define one 2D array distanceDefine one queue q that contain integer pairsfor initialize i := 0, when i = h or cy = w, then:         if distance[cx, cy] is same as -1, then:            distance[cx, cy] := distance[first value of now, second value of now] + 1         insert one pair (cx, cy) into qans := 0for initialize i := 0, when i 

示例

让我们看下面的实现以获得更好的理解 −

#include using namespace std;void solve(int h, int w, vector  grid){   int dx[4] = { 1, 0, -1, 0 };   int dy[4] = { 0, 1, 0, -1 };   vector> distance(h, vector(w, -1));   queue> q;   for (int i = 0; i (i,j));         }      }   }   while (!q.empty()) {      auto now = q.front();      q.pop();      for (int dir = 0; dir = h || cy = w) continue;         if (distance[cx][cy] == -1) {            distance[cx][cy] = distance[now.first][now.second] + 1;            q.push(pair (cx, cy));         }      }   }   int ans = 0; for (int i = 0; i    grid = {"#...", ".#.." , "....", "...#"};   solve(h, w, grid);   return 0;}

登录后复制

输入

4, 4, {"#...", ".#.." , "....", "...#"}

登录后复制

输出

3

登录后复制

以上就是C++程序以找出将所有单元格转换为黑色所需的迭代次数的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2587812.html

(0)
上一篇 2025年3月6日 15:42:18
下一篇 2025年3月6日 15:42:27

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • win10版本1903任务栏没有黑色吗

    我们的电脑在更细安装了win101903版本之后,有的小伙伴们发现电脑的主题变成了白色,想要调整成黑色或者是其它颜色不知道该怎么做。对于这种问题小编认为这个不是win101903的bug,这是此次更新中增加的新功能。我们在个性化设置中新增了…

    2025年3月5日 互联网
    200
  • Win11底部状态栏改为了黑色的样式

    win11默认的底部任务栏是浅蓝色的,比较好看,但是有朋友发现突然win11底部状态栏变成了黑色,这可能是更改了主题或背景颜色,改回来就可以了。 win11底部状态栏变成了黑色: 1、首先点开底部开始菜单,打开“设置” 2、接着进入左边栏的…

    2025年2月25日 互联网
    200
  • 甘蔗为什么有绿色和黑色的

    甘蔗是生活中比较常见的一种水果,它的水分比较足,吃起来味道清甜可口,味道很不错,很多人都喜欢吃甘蔗。甘蔗有绿色的也有黑色的,主要是品种不一样的,两者都是很不错的,主要看个人口味喜好。 甘蔗为什么有绿色和黑色的 甘蔗有绿色也有黑色,主要是因为…

    2025年2月21日
    344.5K00
  • 黑色草莓叫什么名字

    草莓是比较受欢迎的一种水果,它的种类比较多,吃起来味道香甜可口,营养价值高,深受人们喜欢。除了最常见的红色草莓,市面上还会有白色草莓、黑色草莓等,黑色草莓叫黑珍珠,是比较少见的一个新品种。 黑色草莓叫什么名字 黑珍珠。 嘉兴黑草莓是日本的一…

    2025年2月21日
    442.1K00
  • 黑色草莓是真的吗

    草莓是生活中比较受欢迎的一种水果,它含有多种营养成分,吃起来香甜可口,味道很不错,很多人都喜欢吃,最近网上流行黑色草莓,其实并没有这种全黑的草莓,只有暗红色的草莓,这个是全黑的草莓是网友p出来的。 黑色草莓是真的吗 这样的“黑草莓”是根本不…

    2025年2月21日
    439.2K00
  • 披萨上面黑色一圈一圈的是什么食物

    很多人都喜欢吃披萨,这是比较受欢迎的一种美食,它的做法比较多,口味丰富,食材多样,里面会有各种各样的肉类蔬菜以及水果等,有些人吃披萨里面会有黑色圈圈,这个是切片的黑橄榄,是很有营养的。 披萨上面的黑色圈圈是什么 披萨上的黑圈圈是切片的黑橄榄…

    2025年2月20日
    883.2K00
  • 小龙虾头里的黑浆糊是什么

    小龙虾是生活中比较受欢迎的一种食物,它的味道鲜美,营养丰富,吃起来味道很不错,深受人们喜欢。小龙虾头里面的黑浆糊是小龙虾的胃,这个是不能吃的,所以一般都是要去头的。 小龙虾头里的黑浆糊是什么 小龙虾里面的黑浆糊是小龙虾的胃部。 小龙虾的内脏…

    2025年2月18日
    590.0K00
  • 黑色舰队添新员 《战舰世界》迎来黑色星期五活动

    尊贵巅峰,华丽演绎,黑色舰队启航!这是全年最酷的活动,所有舰船都希望披上帅气的晚礼服登场!黑色舰队现已荣耀回归《战舰世界》,黑色星期五活动现已开启。布里斯班 (黑)、猉 (黑)、阿拉巴马 (黑)) 以及慕尼黑 (黑)成为全新加入的四艘战舰!…

    2025年2月18日 游戏
    200
  • 猫藓喷药后皮肤变黑正常么 猫咪长猫藓的皮肤为什么是黑色的

    猫藓是很多猫咪容易得的一种皮肤病,因为很痒,猫猫回去抓挠或者去舔。猫藓要及时治疗,不然是会传染给人的。那么猫藓喷药后皮肤变黑是正常的吗? 猫藓喷药后皮肤变黑正常么 猫癣喷药后变黑,是证明起作用了,有点效果。等结痂开始脱落的时候,就是快好了。…

    2025年2月16日 用户投稿
    498.5K00
  • 怎么让蛏子吐沙 蛏子黑色内脏能吃吗

    蛏子是一种海鲜贝类,外形细长,可以肉用,肉质鲜美。一般生活在近岸海域,也有人工养殖的。蛏子以浮游生物和小海藻为食,和吃花甲等贝内一样,要先把蛏子将肚里的泥沙弄干净。 怎么让蛏子吐沙 第一招: 把蛏子倒入盆中,倒入刚好没过蛏子的水量。倒入几滴…

    2025年2月15日 用户投稿
    379.9K00

发表回复

登录后才能评论