|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include <bits/stdc++.h>
- using namespace std;
- const int N=2e5+10;
- typedef long long ll;
- #define x first
- #define y second
- typedef pair<int,int>p;
- int dx[]={-1,0,1,0},dy[]={0,-1,0,1}; //上左下右
- char g[N][N];
- int st[N][N];
- void solve()
- {
- int n,m,l,r;
- cin>>n>>m;
- for(int i=1;i<=n;i++)
- {
- for(int j=1;j<=m;j++)
- {
- cin>>g[i][j];
- }
- }
- for(int i=1;i<=n;i++)
- {
- for(int j=1;j<=m;j++)
- {
- if(g[i][j]=='@')
- {
- l=i,r=j;
- }
- }
- }
- int ans=0;
- queue<p>q;
- q.push({l,r});
- st[l][r]=1;
- while(q.size()>=1)
- {
- auto u=q.front();
- int x=u.first,y=u.second;
- q.pop();
- for(int i=0;i<4;i++)
- {
- int a=x+dx[i],b=y+dy[i];
- if(a>=1&&a<=n&&b>=1&&b<=n&&g[a][b]!='#'&&!st[a][b])
- {
- if(g[a][b]=='!')ans++;
- st[a][b]=1;
- q.push({a,b});
- }
- }
-
-
- }
- cout<<ans<<endl;
-
-
- }
- int main()
- {
- int t;
- t=1;
- while(t--)
- {
- solve();
- }
- }
复制代码 |
|