警钟敲烂!!!
  • 板块P1767 家族
  • 楼主xinlong666
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/7/23 10:13
  • 上次更新2024/7/23 11:09:05
查看原帖
警钟敲烂!!!
867904
xinlong666楼主2024/7/23 10:13

不要开ios否则wa 可以试试下面代码删去ios前两个/

#include <bits/stdc++.h>
using namespace std;
int dt[550][550];
int l[510];
string s;
int ans;
int yd[4][2] = {{-1,0},{1,0},{0,1},{0,-1}};
void sou(int x,int y){
	dt[x][y] = 0;
	for (int i = 0 ; i <= 3 ; i ++){
		int xx = x+yd[i][0],yy = y+yd[i][1];
		if(dt[xx][yy]==1)sou(xx,yy);
	}
}
signed main (){
	//ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	int n;
	scanf("%d",&n);
	getline(cin,s);
    for (int i = 1 ; i <= n ; i ++){
    	getline(cin,s);
    	l[i] = s.length();
    	for (int j = 0 ; j <= l[i] ; j ++){
    		if(s[j]>='a'&&s[j]<='z'){
    			dt[i][j+1] = 1;
			}
		}
	}
//	cout << endl;
//	for (int i = 1 ;i <= n ; i ++){
//		for (int j = 1 ; j <= l[i] ; j ++){
//			cout << dt[i][j];
//		}
//		cout <<endl;
//	}
	for (int i = 1 ;i <= n ; i ++){
		for (int j = 1 ; j <= l[i] ; j ++){
			if(dt[i][j] == 1){
				sou(i,j);
				ans++;
			}
		}
	}
	cout << ans;
	return 0;
}
2024/7/23 10:13
加载中...