关注
联通块问题,BFS就可以了 #include<iostream>
#include<string>
#include<vector>
#include<queue>
using namespace std;
class point
{
public:
int x;
int y;
point(int i,int j)
{
x = i;
y = j;
}
};
int main()
{
string s;
int m=1;
int n = 1;
cin >> s;
int mark = s.find(',');
m=atoi(s.substr(0, mark).c_str());
n = atoi(s.substr(mark+1,s.size()).c_str());
bool ** a = new bool*[m];
bool ** visited = new bool*[m];
for (int i = 0; i < n; i++)
{
a[i] = new bool[n];
visited[i] = new bool[n];
for (int j = 0; j < n; j++)
{
visited[i][j] = false;
}
}
for (int i = 0; i < m; i++)
{
s = "";
cin >> s;
int k = 0;
for (int j = 0; j < s.size(); j++)
{
if (s[j] == '0')
{
a[i][k] = false;
k++;
}
if (s[j] == '1')
{
a[i][k] = true;
k++;
}
}
}
//input finished
vector<int> group;
queue<point>que;
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
if (a[i][j] == true&&visited[i][j]!=true)
{
int number = 0;
//push queue
point p(i,j);
que.push(p);
while (!que.empty())
{
point p1 = que.front();
que.pop();
number++;
//visit p1
visited[p1.x][p1.y] = true;
//check
for (int ii = p1.x - 1; ii <= p1.x + 1; ii++)
{
for (int jj = p1.y - 1; jj <= p1.y+1; jj++)
{
if (ii < 0 || ii >= m || jj < 0 || jj >= n)
{
continue;
}
if (a[ii][jj] == true&&visited[ii][jj]!=true)
{
que.push(point(ii, jj));
visited[ii][jj] = true;
}
}
}
}
group.push_back(number);
}
}
}
int max = 0;
for (int i = 0; i < group.size(); i++)
{
max = max > group[i] ? max : group[i];
}
cout << group.size() << "," << max << endl;
}
查看原帖
点赞 评论
相关推荐
06-18 15:47
华南农业大学 数据分析师 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 你觉得实习能学到东西吗 #
31403次浏览 639人参与
# 机械人集合!你是什么工程师? #
15418次浏览 89人参与
# 现代汽车前瞻技术研发急速编程挑战赛 #
26175次浏览 212人参与
# 秋招什么时候开投比较合适? #
19423次浏览 276人参与
# 发工资后,你做的第一件事是什么 #
67630次浏览 229人参与
# 如何准备秋招 #
18371次浏览 351人参与
# 百度工作体验 #
219728次浏览 1959人参与
# 机械人与华为的爱恨情仇 #
116298次浏览 942人参与
# 工作中哪个瞬间让你想离职 #
25511次浏览 177人参与
# 硬件应届生薪资是否普遍偏低? #
73667次浏览 514人参与
# 不考虑转正,实习多久合适 #
31666次浏览 145人参与
# 影石Insta360求职进展汇总 #
123197次浏览 1069人参与
# 通信和硬件还有转码的必要吗 #
57318次浏览 526人参与
# 24届的你们都什么时候入职? #
60008次浏览 424人参与
# 面试被问期望薪资时该如何回答 #
256055次浏览 1479人参与
# 实习,不懂就问 #
42455次浏览 648人参与
# 你们公司几号发工资 #
20575次浏览 139人参与
# 软开人,秋招你打算投哪些公司呢 #
102511次浏览 958人参与
# 每个月的工资都是怎么分配的? #
25492次浏览 411人参与
# 如果你有一天可以担任公司的CEO,你会做哪三件事? #
29046次浏览 460人参与
# 你觉得现在还能进互联网吗? #
7643次浏览 130人参与