专栏文章
scope
个人记录参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mimxm1q8
- 此快照首次捕获于
- 2025/12/01 17:13 3 个月前
- 此快照最后确认于
- 2025/12/01 17:13 3 个月前
CPP
#include<bits/stdc++.h>
using namespace std;
int dx[4]={0,0,1,-1},dy[4]={1,-1,0,0};
int n,m;
vector <vector <char> > mp;
struct Pair{
int x,y;
};
bool check(Pair p)
{
return p.x>=1&&p.x<=n&&p.y>=1&&p.y<=m&&mp[p.x][p.y]!='E';
}
bool Bfs(Pair st)
{
map <char,int> fmp;
deque <Pair> dq;
dq.push_back(st);
while(!dq.empty())
{
Pair cur=dq.front();
dq.pop_front();
fmp[mp[cur.x][cur.y]]++;
mp[cur.x][cur.y]='E';
for(int i=0;i<4;i++)
{
Pair next={cur.x+dx[i],cur.y+dy[i]};
if(check(next))
dq.push_back(next);
}
}
return fmp['T']>=2&&fmp['W']>=1&&fmp['H']>=3&&fmp['Y']>=2;
}
int cnt;
int main()
{
scanf("%d%d",&n,&m);
mp.resize(n+1,vector<char>(m+1));
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>mp[i][j];
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
if(mp[i][j]!='E')
cnt+=Bfs({i,j});
printf("%d\n",cnt);
return 0;
}
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...