请大佬帮忙看一下为什么不会输出
查看原帖
请大佬帮忙看一下为什么不会输出
782631
shengmin楼主2023/10/13 10:07
/*
No Solution的几种情况:
1、不是连通图;
2、图中度为奇数的点的数量大于0且不等于2
*/
#include<bits/stdc++.h>
using namespace std;
int n;
char a[2];
int Map[205][205];
int du[205];
int cnt;
char ans[205];
bool flag;
int head;
void dfs(int x) { //找欧拉回路/路径
	for(int i = 65; i <= 125; i++){
        if(Map[i][x] >= 1){
            Map[i][x]--, Map[x][i]--;
            dfs(i);
        }
    }
    ans[n--] = x;
}
signed main() {
	cin >> n;
    for(int i = 1; i <= n; i++){
        cin >> a;
        Map[a[0]][a[1]]++, Map[a[1]][a[0]]++;
        du[a[0]]++, du[a[1]]++;
    }
    for(int i = 65; i <= 125; i++){
        if(du[i] % 2 == 1){
            flag = 1;
            cnt++;
        }
    }
    if(flag || (cnt > 0 && cnt != 2))cout << "No Solution";
    else{
        for(int i = 65; i <= 125; i++){
            if(du[i] == 1)head = i;
        }
        dfs(head);
        cout << ans;
    }
}
2023/10/13 10:07
加载中...