求助
查看原帖
求助
1276571
jiang_yitao楼主2024/8/26 19:30

请各位大佬帮我看看为什么没有输出?

#include <bits/stdc++.h>
using namespace std;
int n , m , q , w ;
char a[10005][10005] = {} ;
int dx[] = {1 , -1 , 0 , 0} ;
int dy[] = {0 , 0 , 1 , -1} ;
struct node{
	int x , y ;
	node(int x1 , int y1):x(x1) , y(y1){}
};
int bfs(int v , int w) {
	int b[10005][10005] = {} , sum = 0;
	b[v][w] = -1 ;
	queue<node>p;
	p.push(node(v , w));
	while (!p.empty()) {
		node cur = p.front() ;
		p.pop() ;
		sum ++;
		for (int i = 0 ; i < 4 ; i ++) {
			int _x = cur.x + dx[i] ;
			int _y = cur.y + dy[i] ;
			if (a[cur.x][cur.y] == 0 && a[_x][_y] == 1 && b[_x][_y] == 0
			&& _x <= n && _x >= 1 && _y <= n && _y >=1) {
				p.push(node(_x , _y));
				b[_x][_y] = -1;
			}
			if (a[cur.x][cur.y] == 1 && a[_x][_y] == 0 && b[_x][_y] == 0
			&& _x <= n && _x >= 1 && _y <= n && _y >=1) {
				p.push(node(_x , _y)) ;
				b[_x][_y] = -1;
			}
		}
	}
	return sum;
}
int main () {
	cin >> n >> m ;
	for (int i = 1 ; i <= n ; i ++) cin >> a[i] ;
	while (m --) {
		cin >> q >> w ;
		cout << bfs(q , w) << endl ;
	}
	return 0;
}
2024/8/26 19:30
加载中...