站外梯
  • 板块灌水区
  • 楼主lucy2012
  • 当前回复12
  • 已保存回复13
  • 发布时间2024/7/18 12:00
  • 上次更新2024/7/18 14:02:28
查看原帖
站外梯
1252442
lucy2012楼主2024/7/18 12:00

未过样例,样例输出8,求调谢谢QwQ

题面:

这格式,是不是有点眼熟?

代码:

#include<bits/stdc++.h>
using namespace std;
int r,s,vis1[1000],vis2[1000][1000],now,maxx=-1;
int dx[]={0,1,0,-1},dy[]={1,0,-1,0};
string st[100];
void dfs(int x,int y){
	now++;
	vis2[x][y]=1;
	vis1[st[x][y]]=1;
	if(now>maxx)
	    maxx=now;
	for(int i=0;i<4;i++){
		int xx=x+dx[i],yy=y+dy[i];
		if(xx>=0&&xx<r&&yy>=0&&yy<s&&!vis2[xx][yy]&&!vis1[st[xx][yy]]){
			dfs(xx,yy);
		}
	} 
	now--;
	vis2[x][y]=0;
	vis1[st[x][y]]=0;
	return;
}
int main(){
	cin>>r>>s;
	for(int i=0;i<r;i++){
		cin>>st[i];
	}
	for(int i=0;i<r;i++){
		for(int j=0;j<s;j++){
			memset(vis1,0,sizeof(vis1));
			memset(vis2,0,sizeof(vis2));
			now=0;
			dfs(i,j);
		}
	}
	cout<<maxx;
	return 0;
}
2024/7/18 12:00
加载中...