关注
#include <iostream>
#include <vector>
using namespace std;
const int direction[4][2] = {
{-1,0}, // 上
{1,0}, // 下
{0,1}, // 右
{0,-1} // 左
};
void helper(vector<vector<int>>& matrix, int x, int y, vector<vector<bool>>& visited)
{
int M = matrix.size();
for(int i=0;i<4;i++)
{
int tmp_x = x + direction[i][0];
int tmp_y = y + direction[i][1];
if(tmp_x<0 || tmp_y<0 || tmp_x>=M || tmp_y>=M)
{
continue;
}
if(matrix[tmp_x][tmp_y]==1 && !visited[tmp_x][tmp_y])
{
visited[tmp_x][tmp_y] = true;
helper(matrix, tmp_x, tmp_y, visited);
}
}
}
int main(int argc, char* argv[])
{
int M = 0;
while(cin>>M)
{
vector<vector<int>> matrix(M, vector<int>(M));
for(int i=0;i<M;i++)
{
for(int j=0;j<M;j++)
{
cin >> matrix[i][j];
}
}
int num = 0;
vector<vector<bool>> visited(M, vector<bool>(M, false));
for(int i=0;i<M;i++)
{
for(int j=0;j<M;j++)
{
if(matrix[i][j]==1 && !visited[i][j])
{
visited[i][j] = true;
num++;
helper(matrix, i, j, visited);
}
}
}
cout << num << endl;
}
return 0;
}
查看原帖
点赞 3
相关推荐

点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 实习,不懂就问 #
2282次浏览 42人参与
# 小米提前批笔试难吗 #
34086次浏览 357人参与
# 现代汽车前瞻技术研发急速编程挑战赛 #
13017次浏览 134人参与
# 26届校招投递进展 #
31370次浏览 243人参与
# 央国企投递记录 #
88117次浏览 1361人参与
# 为了找工作你花了哪些钱? #
28007次浏览 265人参与
# 神州信息工作体验 #
11628次浏览 56人参与
# 校招第一份工作你干了多久? #
85841次浏览 392人参与
# 外包能不能当跳板? #
34480次浏览 221人参与
# 你觉得专业和学校哪个对薪资影响最大 #
61364次浏览 490人参与
# 设计人的面试记录 #
123471次浏览 1341人参与
# 小米硬件提前批进度交流 #
168145次浏览 1523人参与
# 来聊聊你目前的求职进展 #
634329次浏览 6747人参与
# 如何缓解入职前的焦虑 #
192455次浏览 1340人参与
# 硬件人秋招的第一个offer #
77947次浏览 1149人参与
# 硬件人你反向读研了吗 #
42526次浏览 637人参与
# 大疆的机械笔试比去年难吗 #
72919次浏览 618人参与
# 你今年的保底offer是哪家 #
118409次浏览 537人参与
# 打工人的精神状态 #
49740次浏览 863人参与
# 烟草笔面经互助 #
16925次浏览 180人参与
# 硬件人,你被哪些公司给挂了 #
58546次浏览 821人参与