为啥CE
查看原帖
为啥CE
1152799
wsy_I楼主2024/11/28 13:37
#include<bits/stdc++.h>
#define MAXN (int)(5e2+1e1)
using namespace std;
int n,m,mv[MAXN][MAXN]={{},{0,1,-1,0,0},{0,0,0,1,-1}},cnt;
char x[MAXN][MAXN];
struct node{
	int x,y;
	node(int a,int b){x=a;y=b;}
};
void bfs(int x,int y){//洪水填充 
	queue<node> q;
	q.push(node(x,y));
	while(!q.empty()){
		for(int i=1;i<=n;i++){
			if(x[q.front().x+mv[i][1]][q.front().y+mv[i][2]]=='0'){
				x[q.front().x+mv[i][1]][q.front().y+mv[i][2]]='*';
				q.push(node(q.front().x+mv[i][1],q.front().y+mv[i][2]));
			}
		}
		q.pop();
	}
}
int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0); cout.tie(0);
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++) cin>>x[i][j];
	}
	for(int i=1;i<=n;i++) if(x[i][1]!='*') bfs(i,1);
	for(int i=1;i<=n;i++) if(x[i][m]!='*') bfs(i,m);
	for(int i=1;i<=m;i++) if(x[1][i]!='*') bfs(1,i);
	for(int i=1;i<=m;i++) if(x[n][i]!='*') bfs(n,i);
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++) if(x[i][j]=='0') cnt++;
	}
	cout<<cnt<<endl;
	return 0; 
}
//O(n^3)

编译信息: 15 29 C:\Users\s01\Documents\未命名2.cpp [Error] invalid types 'int[int]' for array subscript
16 27 C:\Users\s01\Documents\未命名2.cpp [Error] invalid types 'int[int]' for array subscript

但是 xxmvmv 都是二维数组,也没看到我写了int[int] 啊。。。

2024/11/28 13:37
加载中...