1 条题解
-
0
#include<bits/stdc++.h> using namespace std; int r,c,sx,sy,ans=0; char m; int dx[4]={1,-1,0,0}; int dy[4]={0,0,1,-1}; vector<char>p[100005]; vector<bool>vis[100005]; void dfs(int x,int y) { if(p[x][y]=='S') ans+=1; else if(p[x][y]=='M') ans+=5; else if(p[x][y]=='L') ans+=10; for(int i=0;i<4;i++) { int xx=x+dx[i],yy=y+dy[i]; if(xx<0||xx>=r||yy<0||yy>=c) continue; //出范围了 if(p[xx][yy]=='*') continue; //干草走不了 if(vis[xx][yy]==1) continue; //摘过了 vis[xx][yy]=1; dfs(xx,yy); } } int main() { cin>>r>>c; for(int i=0;i<r;i++) for(int j=0;j<c;j++) { cin>>m; p[i].push_back(m); vis[i].push_back(0); } cin>>sx>>sy; vis[sx][sy]=1; dfs(sx,sy); cout<<ans; }
- 1
信息
- ID
- 791
- 时间
- 3000ms
- 内存
- 512MiB
- 难度
- 6
- 标签
- 递交数
- 128
- 已通过
- 42
- 上传者