求调
  • 板块灌水区
  • 楼主linzichen120207
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/7/2 17:02
  • 上次更新2023/11/3 11:52:31
查看原帖
求调
935855
linzichen120207楼主2023/7/2 17:02

单词接龙

#include<bits/stdc++.h>
using namespace std;
int n,vis[21],l,maxl;
string a[21],one,s;

void dfs(){
	bool f=false;
	for(int i=1;i<=n;i++){
		if(vis[i]!=2){
			f=true;
		}
	}
	if(f==false){
		maxl=max(maxl,l);
		return;
	}
	for(int i=1;i<=n;i++){
		if(vis[i]!=2){
			for(int j=1;j<a[i].length();j++){
				if(s.substr(l-j)==a[i].substr(0,j)){
					s=s+a[i].substr(j);
					l=s.length();
					vis[i]++;
					dfs();
					vis[i]--;
					break;
				}
			}
		} 
	}
	maxl=max(maxl,l);
}

int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	cin>>one;
	for(int i=1;i<=n;i++){
		if(a[i].substr(0,1)==one){
			s=a[i];
			l=s.length();
			dfs();
		}
	}
	cout<<maxl;
	return 0;
}

有点乱……

2023/7/2 17:02
加载中...