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

数学(四) (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),接着再看更方便。

相关小说

未来人类的征途 连载中
未来人类的征途
岁月静好_405313704863907
在庞大的时间机器里,一个微小的齿轮有可能使未来面目全非
0.0万字1年前
文案说 连载中
文案说
華朝朝
欢迎来文案说做客啊!你是揉碎的日光,落入我梦境的一片温暖。文源于网络侵删致歉
15.3万字1年前
仙君的仆从重生了! 连载中
仙君的仆从重生了!
阿音爱写文
[正文已完结,禁止抄袭转载]月尘重生了……然后重蹈覆辙,又栽在了韩泾涟手中。他不明白,为什么自己所推崇的爱情,在那个人眼里却一文不值?他心碎......
15.0万字1年前
海棠一片 连载中
海棠一片
风棬林深
本书讲述了五对纯爱一对疯子一对强制爱的修仙故事。每条线都完整~(或许吧dog)
13.4万字1年前
冷雨微寒,情终一梦 连载中
冷雨微寒,情终一梦
暗想时光
那一年,谁忘了谁那一年,谁负了谁梧桐树下,金发男子问道:“值得吗”蓝发男子回到:“我不知道”花开花落,一女子声泪俱下:“我错了”只因一时的冲......
1.9万字1年前
快穿:男主归你,男配归我 连载中
快穿:男主归你,男配归我
南方有清酒
连箬死了,死于一场车祸,她这一生,除了长的漂亮了点,其余地过得普普通通,车祸前还因为没‘‘服从’’猥琐上司而失业了,还在为工作烦恼。就在她快......
12.8万字1年前