案列过不了,找不出问题><
查看原帖
案列过不了,找不出问题><
1449927
cccckick楼主2025/1/20 20:09
#include<bits/stdc++.h>
using namespace std;
queue<pair<int,int>>c;
bool vis[1000][5000];
char a[1000][5000];
int n,m,x,y,sum;
int step[4][2]={{1,0},{0,1},{-1,0},{0,-1}};
signed main()
{   cin>>n>>m;
    for(int i=1;i<=n;i++)
     for(int j=1;j<=m;j++)
      cin>>a[i][j];
    cin>>x>>y;
    c.push({x+1,y+1});
    vis[x][y]=1;
    while(!c.empty())
    {
    	int dx1=c.front().first;
    	int dy1=c.front().second;
    	c.pop();
        for(int i=0;i<4;i++)
        {
        	int dx=dx1+step[i][0];
        	int dy=dy1+step[i][1];
            if(dx>=1&&dy>=1&&dx<=n&&dy<=m&&vis[dx][dy]==0&&a[dx][dy]!='*')
            { vis[dx][dy]=1;
              c.push({dx,dy});
              if(a[dx][dy]=='S')sum+=1;
			  if(a[dx][dy]=='M')sum+=5;
			  if(a[dx][dy]=='L')sum+=10; 
			}
		}	
	}
	cout<<sum;
	}
2025/1/20 20:09
加载中...