关注
#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
相关推荐

点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 从顶到拉给所有面过的公司评分 #
20337次浏览 180人参与
# 机械人春招想让哪家公司来捞你? #
357393次浏览 3109人参与
# 为了求职,我做过的疯狂伪装 #
12545次浏览 230人参与
# 晒晒你的中秋福利 #
15225次浏览 98人参与
# 职场破冰,你们都聊什么? #
7232次浏览 74人参与
# 大家实习每天都在干啥 #
89076次浏览 518人参与
# 校招笔试 #
648次浏览 30人参与
# 机械笔面试考察这些知识点 #
10500次浏览 96人参与
# 你的公司给实习生发中秋礼物吗 #
1934次浏览 30人参与
# bilibili求职进展汇总 #
89533次浏览 810人参与
# 工作压力大怎么缓解 #
105189次浏览 1052人参与
# 秋招OC许愿 #
346859次浏览 2530人参与
# 广联达求职进展汇总 #
11038次浏览 50人参与
# 机械人怎么评价今年的华为 #
208984次浏览 1524人参与
# 宣讲会你有哪些意向不到的收获 #
1415次浏览 22人参与
# 聊聊这家公司值得去吗 #
558967次浏览 3712人参与
# 你面试被问到过哪些不会的问题? #
21935次浏览 817人参与
# 百度秋招提前批进度 #
150429次浏览 1770人参与
# 电网笔面经互助 #
46765次浏览 431人参与
# 秋招的嫡长offer #
30524次浏览 285人参与