Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 高炉周围_C++_Breadth First Search - Fatal编程技术网

C++ 高炉周围

C++ 高炉周围,c++,breadth-first-search,C++,Breadth First Search,给定一个0、1和2组成的NxN网格,找出是1还是2被包围。被包围意味着1s被2s包围,或者2s被1s包围 010 121 010 表示2被1包围。 有一些复杂的问题,例如: 10110 21212 11111 2被1包围,因为2,1被1包围;0,1不被1包围,因为0,1左侧没有1 如何确定哪些包含哪些以及如何解决此问题 假设表a的大小为m*n。 您应该在表格周围添加一个边界,如下图所示 你可以这样做: 假设您检查了桌子的位置i,j是否被包围? 条件a[u][v]==a[i][j]| | a[u

给定一个0、1和2组成的NxN网格,找出是1还是2被包围。被包围意味着1s被2s包围,或者2s被1s包围

010 121 010

表示2被1包围。 有一些复杂的问题,例如:

10110 21212 11111

2被1包围,因为2,1被1包围;0,1不被1包围,因为0,1左侧没有1

如何确定哪些包含哪些以及如何解决此问题

假设表a的大小为m*n。 您应该在表格周围添加一个边界,如下图所示

你可以这样做:

假设您检查了桌子的位置i,j是否被包围? 条件a[u][v]==a[i][j]| | a[u][v]==0的i,j的BFS->将u,v添加到堆栈中 如果访问边界a[0][x]、a[x][0]、a[m+1][x]、a[x][n+1]->则该边界未被包围
你是在暗示解决方案应该是一个有你头衔的BFS吗?我不明白这句话:2被1包围,因为2,1被1包围,而0,1不被1包围,因为0,1的左边没有1。什么是2,1?网格?2,1中的点表示第2列第1行中的单元格。列和行从0开始。