求助思路
查看原帖
求助思路
128353
tonyG楼主2021/10/8 20:26
#include <bits/stdc++.h>
using namespace std;
int n,ans=1;
string a[50];
bool f[50];
char s[50],w[50],st;
void dfs(char x,int l)
{
	if(l>ans)
	{
		ans=l;
	}
		int i;
		for(i=1;i<=2*n;i++)
		{
			if(f[i]==0&&x==s[i])
			{
				f[i]=1;
				cout<<a[i]<<" "<<a[i].size()<<endl;
				dfs(w[i],l+a[i].size());
				f[i]=0;
			}
		}
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
	cin>>a[i];
	s[i]=a[i][0];
	w[i]=a[i][a[i].size()-1];
}
for(int i=1;i<=n;i++)
{
	a[i+n]=a[i];
	s[i+n]=s[i];
	w[i+n]=w[i];
}
cin>>st;
dfs(st,1);
cout<<ans;
return 0;
}

样例好像都没过QAQ但不知道是哪里的思路有问题,求大佬给看看

2021/10/8 20:26
加载中...