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

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

相关小说

伊甸园L 连载中
伊甸园L
杯子杯子
Forbiddenfruitissweet.禁果格外香.
0.6万字1个月前
修仙纪1 连载中
修仙纪1
为你而等待,只为一个答案
这是一个没有神仙,只有修仙者的时代
92.8万字1个月前
无尽的冬季 连载中
无尽的冬季
高中函数
“无尽的冬季,永远不会来临的夏天”“冬九,我会带你走进夏天”“我在雪山的尽头等着你”“我们死于烈焰,可灵魂不灭,我们终将烈火重生”“浑浊腐烂......
1.1万字1个月前
快穿:天生渣女 连载中
快穿:天生渣女
妖烟笑红尘
约1(1vN,女主万人迷,不喜勿入)“不要为了一个渣男伤心,只要完成任务,坐拥三千世界各大美男完全不在话下!
22.1万字1个月前
一穿手游之魔君好男色 连载中
一穿手游之魔君好男色
玄子兟兟
7.9万字1个月前
九天青鸾 连载中
九天青鸾
刘幸运
九重天风雅温润的九殿下,与不周山颠元宫的青尊尊上,兜兜转转万年,绕不开的情缘纠葛,躲不掉的心之所向。
11.8万字1个月前