数学联邦政治世界观
超小超大

数学(四) (2-1)

flood fill能够在线性时间复杂度内,找到某个点所在的连通块。

四联通常用数组加一层循环判断

int dx[4] = {0, -1, 0, 1}, dy[4] = {-1, 0, 1, 0};

八联通常用二层循环遍历‬

tip:注意二层循环排除自己的情况

for (int i = t.x - 1; i <= t.x + 1; i ++ )

for (int j = t.y - 1; j <= t.y + 1; j ++ )

注意循环条件内的if特判,参考代码如下(应该是acwing1098)

include:<iostream>

include:<queue>

include:<utility>

using namespace std;

define:x first

define:y second

define:IOS ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);

typedef pair<int,int> PII;

const int N=55;

queue<PII>q;

int g[N][N];

bool st[N][N];

int cnt=0, ss=0, n, m;

int dx[4] = {0, -1, 0, 1}, dy[4] = {-1, 0, 1, 0};

int bfs(int a, int b) {

q.push({a, b});

st[a][b]=true;

int area=0;

while(q.size()) {

auto t=ont();

q.pop();

area++;

for(int i=0; i<4; i++) {

int sx=t.x+dx[i], sy=t.y+dy[i];

if(sx<=0 || sy<=0 || sx>n || sy>m) continue;

if(g[t.x][t.y] >> i & 1) continue;

if(st[sx][sy]) continue;

q.push({sx, sy});

st[sx][sy]=true;

}

}

return area;

}

void solve() {

cin>>n>>m;

for(int i=1; i<=n; i++) {

for(int j=1; j<=m; j++) {

cin>>g[i][j];

}

}

数学联邦政治世界观提示您:看后求收藏(同人小说网http://tongren.me),接着再看更方便。

相关小说

显圣 连载中
显圣
青春不可负
【三人组+无cp+微群向+灵气复苏+现代修仙】“有什么是我这个队长不能看的?”“不偷偷学习就只能继承家产,我不想过那种枯燥的生活!”“师傅快......
0.9万字4个月前
玉君歌 连载中
玉君歌
初梦秋意殇
21世纪佣兵女王红叶穿越到天灵大陆,却遭人陷害,意外横死。好在上天给了她一次机会,让她重新来过,这一次她不会再手软了。但这个男人是什么情况?......
40.1万字4个月前
阿柒与阿七 连载中
阿柒与阿七
玄羽朱雀
阿七与阿柒,两个人格,在同一个身体里......追杀,栽赃......又是为了什么?忽然出现的神秘人们,到底是为了什么?终于,看似宁静的世界......
3.4万字4个月前
重生者之复仇双子 连载中
重生者之复仇双子
郁雨笙
一团梦,是梦里妇人记不清的梦。那对双子星辰,日与月辉耀相间,印这世——那世片刻的光辉,是那个瞬间世间又无光:白色的天空,没有人类气息的空城,......
11.5万字4个月前
暮光之城:极夜星辰 连载中
暮光之城:极夜星辰
空港契约辛达版
沃尔图家族的,不太磕颜,一开始看的是书,文本偏向马库斯,不喜勿喷个人认为马库斯演员有问题,人家比另外两位年轻,却配了那样一个演员……好可怜…......
5.8万字4个月前
秘密身世 连载中
秘密身世
林梓霜
9.3万字4个月前