MLE求调
查看原帖
MLE求调
1383625
kkksc_tbh楼主2025/7/30 17:06
#include<bits/stdc++.h>
#define int long long
#define endl "\n"
using namespace std;
const int N=1e5+5;
int r,c;
int sx,sy;
int ans;
int dx[]={-1,0,1,0};
int dy[]={0,1,0,-1};
vector<char> a[N];
vector<bool> vis[N];
struct node{
	int x,y;
};
bool check(int x,int y){
	if(x>=1&&x<=r&&y>=1&&y<=c&&vis[x][y]==0&&a[x][y]!='*');
}
void bfs(){
	queue<node> Q;
	Q.push({sx,sy});
	while(Q.size()){
		node u=Q.front();
		Q.pop();
		for(int i=0;i<4;i++){
			int xx=u.x+dx[i];
			int yy=u.y+dy[i];
			if(check(xx,yy)){
				vis[xx][yy]=1;
				if(a[xx][yy]=='S'){
					ans+=1;
//					cout<<ans<<' ';
				}else if(a[xx][yy]=='M'){
					ans+=5;
//					cout<<ans<<' ';
				}else if(a[xx][yy]=='L'){
					ans+=10;
//					cout<<ans<<' ';
				}
				Q.push({xx,yy});
			}
		}
	}
	return ;
}
signed main(){
	cin>>r>>c;
	for(int i=0;i<r;i++){
		for(int j=0;j<c;j++){
			char m;
			cin>>m;
			a[i].push_back(m);
			vis[i].push_back(0);
		}
	}
	cin>>sx>>sy;
	bfs();
	cout<<ans;
	return 0;
}

2025/7/30 17:06
加载中...