关于欧拉回路和欧拉路
  • 板块学术版
  • 楼主Maysoul
  • 当前回复2
  • 已保存回复2
  • 发布时间2023/4/27 21:03
  • 上次更新2023/10/23 17:24:15
查看原帖
关于欧拉回路和欧拉路
409774
Maysoul楼主2023/4/27 21:03

题目传送门

感觉写的没问题,但是只能过一半的点

求大佬帮忙调一下

//2023/4/27
//别着急,先通读一遍题目
//别忘了开long long
//写完先看一遍怎么降复杂度
//要么开全局变量要么给定初值
//想想看,有什么情况需要特判
//std::ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
#include<bits/stdc++.h>
using namespace std;
const int MAXN=1e6+10;
int n,e,start,k;
int x,y;
int g[110][110];
int du[110];
int ans[110];
void dfs(int i)
{
	for (int j=1;j<=n;j++)
	{
		if(g[i][j]==1)
		{
			g[i][j]=g[j][i]=0;
			dfs(j);
		}
	}
	ans[++k]=i;
}
int main()
{
	cin>>n>>e;
	for (int i=1;i<=e;i++)
	{
		cin>>x>>y;
		g[x][y]=g[y][x]=1;
		du[x]++;
		du[y]++;
	}
	start=1;
	for (int i=1;i<=n;i++)
	{
		if(du[i]%2==1)
		{
			start=i;
		}
	}
	dfs(start);
	for (int i=1;i<=k;i++)
	{
		cout<<ans[i]<<" ";
	}
	return 0;
}

2023/4/27 21:03
加载中...