玄关,求助站外题
  • 板块学术版
  • 楼主_TAT_
  • 当前回复1
  • 已保存回复3
  • 发布时间2023/10/22 13:20
  • 上次更新2023/10/22 13:56:50
查看原帖
玄关,求助站外题
1073331
_TAT_楼主2023/10/22 13:20

这里是题目写在洛谷上了

#include<bits/stdc++.h>
using namespace std;
int n,m;
char t;
char a[1005][1005];
bool vis[1005][1005]={0};
int nf=0;
void BFS(int x,int y)
{
  if(char(a[x][y])>t) return;
	nf++;
 // cout<<x<<" "<<y<<endl;
  vis[x][y]=1;
	if(x>1&&vis[x-1][y]==0) BFS(x-1,y);
	if(y>1&&vis[x][y-1]==0) BFS(x,y-1);
	if(y<n&&vis[x][y+1]==0) BFS(x,y+1);
	if(x<m&&vis[x+1][y]==0) BFS(x+1,y);
}
int main()
{
    int p1,p2;
	cin>>n>>m>>p1>>p2;
	for(int i=1;i<=n;i++)//m行 
	{
		for(int j=1;j<=m;j++)//n列 
		{
			cin>>a[i][j];
		}
	}	
  // for(int i=1;i<=n;i++)//m行 
	// {
	// 	for(int j=1;j<=m;j++)//n列 
	// 	{
	// 		cout<<a[i][j]<<' ';
	// 	}
  //   cout<<endl;
	// }	
  t=a[p1][p2];
	BFS(p1,p2);
	cout<<nf;
	return 0;
}
2023/10/22 13:20
加载中...