我只有一个80分的深搜方法,谁来看看问题在哪儿?
查看原帖
我只有一个80分的深搜方法,谁来看看问题在哪儿?
1066120
Elena2011楼主2025/7/23 15:45

前四个测试点 AC

最后一个测试点 WR

代码如下:

#include<bits/stdc++.h>
using namespace std;
const int N=55;
string v;
int arr[N][N];
int n,fr,la,ans;
void dfs(int last,int len){
	ans = max(ans,len);
	for(int i=1;i<=26;i++){
		if(arr[last][i]>0){
			arr[last][i]=0;
			dfs(i,len+1);
			arr[last][i]=1;
		}
	}
	return;
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>v;
		fr = (int)(v[0]-'a')+1;
		la = (int)(v[1]-'a')+1;
		arr[fr][la]++;
	}
	for(int i=1;i<=26;i++){
		for(int j=1;j<=26;j++){
			if(arr[i][j]==1){
				dfs(i,0);
				break;
			}
		}
	}
	printf("%d\n",ans);
	
	return 0;
} 
2025/7/23 15:45
加载中...