本地测试与洛谷不同?
  • 板块P1767 家族
  • 楼主Elairin176
  • 当前回复2
  • 已保存回复2
  • 发布时间2023/1/7 17:42
  • 上次更新2023/10/24 05:16:25
查看原帖
本地测试与洛谷不同?
592238
Elairin176楼主2023/1/7 17:42
#include <iostream>
#include <queue>
#include <string>
using namespace std;
int n,m,dx[4]={0,0,1,-1},dy[4]={1,-1,0,0},cnt,st;
string s[101];
bool vis[101][205];
struct pos{
	int x;
	int y;
};
queue<pos>q;
int main(void){
	//freopen("data.txt","r",stdin);
	cin>>n;
	getline(cin,s[0]);
	for(int i=0;i<n;i++){
		getline(cin,s[i]);
		//cout<<s[i]<<endl;
	}
	for(int i=0;i<n;i++){
		for(int j=0;j<s[i].length();j++){
			if((!vis[i][j])&&(s[i][j]!='*')&&(s[i][j]!=' ')){
				vis[i][j]=true;
				q.push(pos{i,j});
				cnt++;
				while(!q.empty()){
					int x=q.front().x,y=q.front().y;
					q.pop();
					for(int i=0;i<4;i++){
						int xx=x+dx[i],yy=y+dy[i];
						if(xx<0||yy<0||xx>=n||yy>=s[xx].length()||vis[xx][yy]||s[xx][yy]=='*'||s[xx][yy]==' '){
							continue;
						}
						vis[xx][yy]=true;
						q.push(pos{xx,yy});
					}
				}
			}
		}
	}
	cout<<cnt<<endl;
}

下载下来数据发现输出对了,但提交 WA。

2023/1/7 17:42
加载中...