0分求助
  • 板块P1767 家族
  • 楼主Thomas_mum
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/12/3 17:23
  • 上次更新2023/12/3 20:07:24
查看原帖
0分求助
741125
Thomas_mum楼主2023/12/3 17:23

谁能看一下哪错了 '/r'应该也特判了

#include<iostream>
#include<math.h>
#include<queue>
#include<string>
using namespace std;
string a[110];
bool vis[110][210];
int n;
int w;
int qx[2][4]={
	{1,0,-1,0},
	{0,1,0,-1}
};
void bfs(int tempx,int tempy)
{
	queue<int> q_x;
	queue<int> q_y;
	q_x.push(tempx);
	q_y.push(tempy);
	vis[tempx][tempy]=true;
	while(!q_x.empty())
	{
		// cout<<q_x.size()<<endl;
		int x=q_x.front();
		int y=q_y.front();
		q_x.pop();
		q_y.pop();
		for(int i=0;i<4;i++)
		{
			if(!vis[x+qx[0][i]][y+qx[1][i]]/*未来过*/     && a[x+qx[0][i]][y+qx[1][i]]>='a' && a[x+qx[0][i]][y+qx[1][i]]<='z'/*是家庭*/
			 && x+qx[0][i]>=0 && x+qx[0][i]<=n && y+qx[1][i]>=0 && y+qx[1][i]<=w /*未出界*/)
			{
				vis[x+qx[0][i]][y+qx[1][i]]=true;
				q_x.push(x+qx[0][i]);
				q_y.push(y+qx[1][i]); 
			}
		}
	}
}
int ans;
int main()
{
	//    freopen("family.in","r",stdin);
	//    freopen("family.out","w",stdout);
	cin>>n;
		getchar();
	for(int i=0;i<n;i++)
	{
		getline(cin,a[i]);
		// cin>>a[i];
		if(w<=a[i].size()-1)
		{
			w=a[i].size()-1;
		}
	}
				// for(int i=0;i<n;i++)
				// {
				// 	for(int j=0;j<=w;j++)
				// 	{
				// 		cout<<a[i][j]<<" ";
				// 	}
				// 	cout<<endl;
				// }




	
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<=w;j++)
		{
			if(!vis[i][j] && a[i][j]<='z' && a[i][j]>='a')
			{
				// vis[i][j]=1;
				ans++;
				bfs(i,j);
				// for(int i=0;i<n;i++)
				// {
				// 	for(int j=0;j<=w;j++)
				// 	{
				// 		cout<<vis[i][j]<<" ";
				// 	}
				// 	cout<<endl;
				// }
				// cout<<endl;
			}
		}
	}
	cout<<ans;
}
2023/12/3 17:23
加载中...