广搜样例过了,0分求助
查看原帖
广搜样例过了,0分求助
1036776
zjy4楼主2024/10/1 13:43
#include<bits/stdc++.h>
using namespace std;
int sum=0,d[101][101],n,m,b,c;
char a[102][102];
bool gc(int x,int y){
	if(a[x][y]=='*') return false;
	return true;
}
int zh(int x,int y){
	if(a[x][y]=='S') return 1;
	if(a[x][y]=='M') return 5;
	if(a[x][y]=='L') return 10;
}
void bfs(int x,int y){
	d[x][y]=1;
	if(gc(x,y+1)&&d[x][y+1]==0){
		sum=sum+zh(x,y+1);
		bfs(x,y+1);
	}
	if(gc(x,y-1)&&d[x][y-1]==0){
		sum=sum+zh(x,y-1);
		bfs(x,y-1);
	}
	if(gc(x-1,y)&&d[x-1][y]==0){
		sum=sum+zh(x-1,y);
		bfs(x-1,y);
	}
	if(gc(x+1,y)&&d[x+1][y]==0){
		sum=sum+zh(x+1,y);
		bfs(x+1,y);
	}
}
int main() {
	memset(a,'*',sizeof(a));
	cin>>b>>c;
	for(int i=1;i<=b;i++) scanf("%s",a[i]);
	cin>>n>>m;
	sum=sum+zh(n+1,m+1);
	bfs(n+1,m+1);
	cout<<sum;
}
2024/10/1 13:43
加载中...