32,33两个点MLE,求调
查看原帖
32,33两个点MLE,求调
303105
haiming楼主2024/10/13 17:24

代码如下

#include<bits/stdc++.h>
using namespace std;
int n,m,i,j,x,y,s1,t,w,xx,yy;
char s;
vector<int> a[100010];
struct node{int x,y;};
queue<node>p;
int tag[4][2]={{0,1},{0,-1},{1,0},{-1,0}};
signed main(){
	scanf("%d%d",&n,&m);
	for(i=0;i<n;i++){
		getchar();getchar();
		for(j=0;j<m;j++){
			s=getchar();
			if(s=='S')a[i].push_back(1);
			else if(s=='M')a[i].push_back(5);
			else if(s=='L')a[i].push_back(10);
			else a[i].push_back(0);
		}
	}
	scanf("%d%d",&x,&y);
	p.push({x,y});
	while(!p.empty()){
		x=p.front().x;y=p.front().y;
		p.pop();
		s1+=a[x][y];
		a[x][y]=0;
		for(i=0;i<4;i++){
			xx=x+tag[i][0];yy=y+tag[i][1];
			if(xx<0||yy<0||xx>=n||yy>=m||a[xx][yy]==0)continue;
			p.push({xx,yy});
		}
	}
	printf("%d",s1);
	return 0;
}
2024/10/13 17:24
加载中...