求助,玄关
  • 板块灌水区
  • 楼主封禁用户
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/3/29 21:45
  • 上次更新2024/3/29 21:46:36
查看原帖
求助,玄关
1077010
封禁用户楼主2024/3/29 21:45

题目传送门

  • 最后两点RE
#include<bits/stdc++.h>
using namespace std;

int i,j,n,m,dx[]={-1,0,1,0},dy[]={0,1,0,-1},ans;
int x[10001],y[10001];
char t;	
int main(){
	cin>>n>>m;
	int a[n+1][m+1];
	bool b[n+1][m+1];
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			a[i][j]=0;
			b[i][j]=0;
		}		
	}	
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cin>>t;
			if(t=='*')b[i][j]=1;
			else if(t=='S')a[i][j]=1;
			else if(t=='M')a[i][j]=5;
			else if(t=='L')a[i][j]=10;
		}		
	}
	cin>>i>>j;
	i++;
	j++;
  
  
	int h=0,t=1;
	x[1]=i,y[1]=j;
	ans+=a[i][j];
	b[i][j]=1;
	while(h<t){
		h++;
		int tx=x[h],ty=y[h];
		for(int i=0;i<4;i++){
			int xx=tx+dx[i];
			int yy=ty+dy[i];
			if(xx>=1&&xx<=n&&yy>=1&&yy<=m&&!b[xx][yy]){
				ans+=a[xx][yy];
				t++;
				x[t]=xx;
				y[t]=yy;
				b[xx][yy]=1;
			}
		}
	}	
  
  
	cout<<ans;
	return 0;
}
2024/3/29 21:45
加载中...