求助大佬,为什么只有54分
  • 板块P1331 海战
  • 楼主流光剑客
  • 当前回复2
  • 已保存回复2
  • 发布时间2022/6/6 15:58
  • 上次更新2023/10/27 23:52:09
查看原帖
求助大佬,为什么只有54分
505983
流光剑客楼主2022/6/6 15:58
#include <bits/stdc++.h>
using namespace std;
int r, c, S;
char d[120][120];
bool f[120][120];
int dx[] = {1, 0, -1, 0};
int dy[] = {0, 1, 0, -1};
void dfs(int x, int y){
	for(int i = 0; i < 4; i++){
		int nr = dx[i] + x;
		int nc = dy[i] + y;
		if(1 <= nr && nr <= r && 1 <= nc && nc <= c
		   && !f[nr][nc] && d[nr][nc] != '.'){
		   	f[nr][nc] = 1; 
			dfs(nr, nc);
		}
	}
}
int main(){
	cin>>r>>c;
	for(int i = 1; i <= r; i++){
		for(int j = 1; j <= c; j++){
			cin>>d[i][j];
		}
	}	
	for(int i = 1; i <= r; i++){
		for(int j = 1; j <= c; j++){
			if(d[i][j] != '.' && !f[i][j]){
				S++;
				dfs(i, j);
				f[i][j] = true;
			}
		}
	}
	cout<<"There are "<<S<<" ships."<<endl;
	return 0;
}
2022/6/6 15:58
加载中...