一本通DFS水题求助
  • 板块灌水区
  • 楼主AnOIer
  • 当前回复8
  • 已保存回复9
  • 发布时间2024/7/21 14:13
  • 上次更新2024/7/21 15:28:37
查看原帖
一本通DFS水题求助
1036897
AnOIer楼主2024/7/21 14:13

题目

#include<bits/stdc++.h>
using namespace std;
int n,m;
char a[25][25];
bool b[10000];
int ans=-114514;
void dfs(int x,int y,int cnt){
	ans=max(ans,cnt);
	b[a[x][y]]=true;
	if(!b[a[x+1][y]]&&x!=m-1){
		dfs(x+1,y,cnt+1);
	}
	if(!b[a[x][y+1]]&&y!=n-1){
		dfs(x,y+1,cnt+1);
	}
	if(!b[a[x-1][y]]&&x!=1){
		dfs(x-1,y,cnt+1);
	}
	if(!b[a[x][y-1]]&&y!=1){
		dfs(x,y-1,cnt+1);
	}
	b[a[x][y]]=false;
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cin>>a[i][j];
		} 
	}
	dfs(1,1,1);
	cout<<ans;
	return 0;
}

只能拿40分

2024/7/21 14:13
加载中...