关注
#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
相关推荐
点赞 评论 收藏
分享
2025-12-14 11:43
黑龙江大学 Java
用微笑面对困难:确实比较烂,可以这么修改:加上大学的qs排名,然后大学简介要写一些,然后硕士大学加大加粗,科研经历第一句话都写上在复旦大学时,主要负责xxxx,简历左上角把学校logo写上,建议用复旦大学的简历模板 点赞 评论 收藏
分享
2025-11-15 14:35
南京邮电大学 Java 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 哪些公司在招寒假实习? #
15761次浏览 195人参与
# 国企vs私企,你更想去? #
305784次浏览 2491人参与
# MiniMax求职进展汇总 #
767次浏览 23人参与
# 26年哪些行业会变好/更差 #
18972次浏览 256人参与
# 卷__卷不过你们,只能卷__了 #
12080次浏览 265人参与
# 有深度的简历长什么样? #
16656次浏览 341人参与
# 写论文的崩溃时刻 #
6523次浏览 148人参与
# 去年的flag与今年的小目标 #
10112次浏览 196人参与
# 关于春招你都做了哪些准备? #
122223次浏览 707人参与
# 机械人,你最希望上岸的公司是? #
198170次浏览 1917人参与
# 现在还是0offer,延毕还是备考 #
1256587次浏览 7922人参与
# 你不能接受的企业文化有哪些 #
11947次浏览 169人参与
# 入职第一天 #
10181次浏览 219人参与
# 租房前辈的忠告 #
350520次浏览 7445人参与
# 你都用AI做什么 #
6886次浏览 156人参与
# 你怎么看待AI面试 #
133441次浏览 745人参与
# 发工资后,你做的第一件事是什么 #
93127次浏览 311人参与
# 最难的技术面是哪家公司? #
62969次浏览 949人参与
# 腾讯音乐求职进展汇总 #
147958次浏览 1053人参与
# 华为池子有多大 #
159177次浏览 877人参与
# 一人分享一道面试手撕题 #
23080次浏览 811人参与
查看1道真题和解析