关注
#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
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 哪些公司开提前批了? #
23695次浏览 252人参与
# 你今年的平均薪资是多少? #
133769次浏览 683人参与
# 风评不好的公司,你会去吗? #
56458次浏览 406人参与
# 实习如何「偷」产出? #
47629次浏览 1243人参与
# 正在春招的你,也参与了去年秋招吗? #
312547次浏览 2528人参与
# 除了主业以外,你还有哪些其他收入? #
11047次浏览 195人参与
# 互联网公司评价 #
401005次浏览 3836人参与
# 你最满意的offer薪资是哪家公司? #
32935次浏览 176人参与
# 节后第一天上班,我的精神状态 #
13351次浏览 117人参与
# 不卡学历的大厂有哪些? #
26556次浏览 212人参与
# 校招阶段,学历VS技术哪个更重要? #
16354次浏览 182人参与
# 职场新人体验 #
23018次浏览 224人参与
# 签约/解约注意事项 #
696725次浏览 4068人参与
# 应届生初入职场,求建议 #
229568次浏览 2642人参与
# 你投递的公司有几家约面了? #
108706次浏览 777人参与
# 腾讯音乐求职进展汇总 #
97951次浏览 570人参与
# 校园里的破防时刻 #
10309次浏览 118人参与
# 硬件人求职现状 #
434330次浏览 4539人参与
# 正在实习的碎碎念 #
1454049次浏览 13469人参与
# 宁德时代求职进展汇总 #
122649次浏览 650人参与