20求调
查看原帖
20求调
709872
madicine_killer_king楼主2023/12/20 12:59
#include<bits/stdc++.h>
using namespace std;
const int maxn=10010;
int n,m,d[maxn][maxn],h=0,c=0,cao=0;
char a[maxn],r[maxn];
void fuck(int i){
	for(int sb=1;sb<=150;sb++){
		if(d[i][sb]>0){
			d[sb][i]--;
			d[i][sb]--;
			fuck(sb);
		} 
	}
	a[cao++]=i;
	return;
}
void cnm(){
	for(int wdf=cao;wdf>=0;wdf--){
		printf("%c",a[wdf]);
	}
}
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        string sans;
        cin>>sans;
        d[sans[0]][sans[1]]++;
        d[sans[1]][sans[0]]++;
        r[sans[0]]++;
        r[sans[1]]++;
    }
    for(int i=1;i<=150;i++){
        if(r[i]&1){
            c++;
            if(!h)h=i;
        }
    }
    if(!h){
        for(int i=0;i<150;i++){
            if(r[i]){
                h=i;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
                break;
            }
        }
    }
    if(c&&c!=2){
    	cout<<"No Solution";
    	return 0;
    }
    fuck(h);
    cnm();
return 0;
}

本地可以,但是luogu上不行

2023/12/20 12:59
加载中...