c++ - 读入矩阵并构建图形

标签 c++ algorithm parsing graph

我有一个长方形的房间;它的地板上铺着地板,有些地板坏了。 房间的尺寸为N和M:1 <=N,M<=300。 我从 stdin 中读取了 N 和 M,然后读取了 N 个长度为 M 的字符串,如下所示:

..**.***....*.**...**.***
.**......**...***..***...

等等,其中 . 是好的地板,* 是坏的。 我打算把坏掉的地板换成新的,我只有两种:两 block 一 block 的和一 block 一 block 的。我不能把一对一的剪成两个一对一的。 为了找到一种方法来做到这一点,我把地板涂成棋盘状,这样一来二去的破损的两半就有不同的颜色。 然后我的意思是从结果矩阵构建一个二分图(由白色和黑色部分组成),我想用 this code 构建和分析它.

最好的方法是什么? 我认为我不应该将所有矩阵都保存在内存中(因为它可能相当大)。理想情况下,我应该能够读取字符串并在运行时更新图形。

编辑: 我的代码应该是这样的:

int main()
{
int N, M;
std::cin >> N;
assert (( N >=1) && (N <=300));
std::cin >> M;
assert (( M >=1) && (M <=300));
for (int i = 0; i < N; ++i)
    std::cin >> // that's where I have to read the string
                //...and the next string
                // use these 2 strings to update a graph
                // with prGraph.AddEdge()
return 0;
}

最佳答案

如果不将整个矩阵存储在内存中真的如此重要,您可以逐行读取它并仅存储当前行和上一行,因为这足以正确构建图形。

关于c++ - 读入矩阵并构建图形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25324226/

相关文章:

c++ - 获取在 visual studio 中定义的命令结果

c++ - 如何为通用 lambda 参数定义模板参数?

algorithm - 使用 Kadane 算法查找数组中最大和子数组的数量

xml - XML 引用测试数据的免费公共(public)存储库

java - 地址解析

javascript - 在 javascript 中解析 XML - 没有浏览器 - 没有 XML 解析器

c++ - 与 DirectX 数学中的 XMMatrixDecompose() 相反?

c++ - C++ 中可变与不可变二叉树遍历

c - 在包装n个最大容量为W的箱子时,要最小化箱子的数量,同时还要将浪费的箱子空间最小化?

algorithm - 使用最小堆查找第 k 个最大元素