31031题解
2025-08-19 13:38:02
发布于:福建
1阅读
0回复
0点赞
废话少说,上题解。
#include<bits/stdc++.h>
using namespace std;
int n;
string cur;
string nums[25];
vector<string> v;
bool vis[25];
void dfs(int id){
if(id==-1){
string tmp="";
for(int i=0;i<v.size();i++){
tmp+=v[i];
}
if(tmp>cur){
cur=tmp;
}
}else{
vis[id]=1;
v.push_back(nums[id]);
bool flag=false;
for(int i=1;i<=n;i++){
if(!vis[i]){
dfs(i);
flag=1;
}
}
if(!flag){
dfs(-1);
}
vis[id]=0;
v.pop_back();
}
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>nums[i];
}
for(int i=1;i<=n;i++){
dfs(i);
}
cout<<cur;
}
这里空空如也
有帮助,赞一个