蒟蒻求助,样例过了,0分!
  • 板块P1127 词链
  • 楼主never_AK
  • 当前回复4
  • 已保存回复4
  • 发布时间2022/8/13 12:33
  • 上次更新2023/10/27 15:38:15
查看原帖
蒟蒻求助,样例过了,0分!
373757
never_AK楼主2022/8/13 12:33
#include<bits/stdc++.h>
#define int long long
using namespace std;
const long long maxn=1e3+10;
vector <int> v[35],g[maxn];
bool vis[maxn];
priority_queue <string,vector<string>,greater<string> >q;
string s[maxn];
int n;
int sum;
void DFS(int x,int cnt,string t){
	if(cnt == n){
		q.push(t);
		return ;
	}
	for(int i=0;i<g[x].size();i++){
		int u = g[x][i];
		if(vis[u])continue;
		vis[u] = 1;
		DFS(u,cnt+1,t+'.'+s[u]);
		vis[u] = 0;
	}
}
signed main()
{
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>s[i];
		int len=s[i].size();
		for(int j=0;j<v[s[i][0]-'a'].size();j++){
			int u = v[s[i][0]-'a'][j];
			g[i].push_back(u);
			g[u].push_back(i);
		}
		v[s[i][len-1]-'a'].push_back(i);
	}//以上均为建图
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++)vis[j] = 0;
		DFS(i,1,s[i]);//搜索
	}
	//sort(ans+1,ans+sum+1);
	cout<<q.top()<<endl;
	return 0;
 } 
2022/8/13 12:33
加载中...