gpt4 book ai didi

c - 如何计算每组中有效方 block 的数量?

转载 作者:行者123 更新时间:2023-11-30 18:13:02 25 4
gpt4 key购买 nike

编辑:我有一个逻辑错误,我不知道如何修复它。 This is my code 。我认为问题出在第245行的while函数中。它没有将下一个有效像素添加到队列中,因此队列变为0并退出WHILE函数。

我需要资深人士的帮助!我有一个像国际象棋 table 一样的东西,有相同大小的方 block ,从下到上、从右到左编号,但只有其中一些对我有效(如我发布链接的图片所示)。我从表中删除了无效的内容。

我希望我的 C 程序能够计算每组中的方 block 数。正如您在图像中所看到的,有效组仅包含直接连接的方 block ,仅对角连接的方 block 不属于同一组。我使用颜色来证明图片中的有效组。

我知道 table 的宽度和高度,并且我知道它有多少个方格和有效方格。我将它们的数字存储在 vector 中,但我不知道如何计算每组中的正方形。我怎样才能做到这一点?

这是我的照片:

enter image description here

我想找到一种适用于较大“国际象棋 table ”的方法,例如已知尺寸的图片。

最佳答案

你肯定会错过的是:一个有效的方 block 属于哪一组?
您可以使用图论来解决这个问题。但您也可以尝试其他方法。

例如,您可以使用一个标签列表来跟踪是否已访问过的节点。您可以使用 vector 的 vector 来管理组节点。

  1. 以相同方向浏览表格,假设从左上到右下。仅检查未访问的节点。
  2. 当找到未访问的有效方格时,将此节点添加到 vector [count++]中,并将此节点标记为已访问。
  3. 在右下方向寻找该节点连接的方 block 。如果找到,则将其标记为已访问,并将该节点添加到同一 vector [count]列表中。
  4. 您重复相同的过程,直到找不到更多连接的组件(例如使用递归)。
  5. 如果在同一组中不再找到相连的方 block ,请继续第 1 步。
  6. 最后,只需对每个 vector [count]求和,它就应该给出预期的结果(为了提高性能,您可以在查看连接的组件时即时执行此操作)。

关于c - 如何计算每组中有效方 block 的数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27754045/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com