cnt=0你也没处理啊
by bdfs_then_csdn @ 2023-10-13 10:16:17
而且flag有点问题,这样你有奇度点就直接No solution结束了,把flag删了
by bdfs_then_csdn @ 2023-10-13 10:17:57
```cpp
#include<bits/stdc++.h>
using namespace std;
int n;
char a[2];
int Map[205][205];
int du[205];
int cnt;
int ans[205];
bool flag;
int head;
int m;
void dfs(int x) { //找欧拉回路/路径
for(int i = 65; i <= 125; i++){
if(Map[i][x] >= 1){
Map[i][x]--, Map[x][i]--;
dfs(i);
}
}
int k = x - 65;
ans[n--] = k;
}
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{
if(cnt)
{
for(int i = 65; i <= 125; i++){
if(du[i] & 1)
{
head = i;
break;
}
}
}
else
{
for(int i = 65; i <= 125; i++)
if(du[i])
{
head = i;
break;
}
}
m = n;
dfs(head);
for(int i = 0; i <= m; i++) cout << char(ans[i] + 'A');
}
}
```
by Linghua_dog @ 2023-10-13 10:19:27
改成这样就行了
by Linghua_dog @ 2023-10-13 10:19:55
@[Linghua_dog](/user/541568) 谢谢
by shengmin @ 2023-10-13 10:28:05
把 flag去掉
by Linghua_dog @ 2023-10-13 10:34:42
@[Linghua_dog](/user/541568) ok了谢谢
by shengmin @ 2023-10-13 10:43:04