2 条题解

  • 0
    @ 2023-11-11 14:31:27
    #include<bits/stdc++.h>
    const int N = 10000000;
    using namespace std;
    int m[1000][1000],d[N],l[N],sum=1,n,x,y,cnt=0,max_int=0;
    void dfs(int i)
    {
    	int cnt1;
    	for(cnt1 = 1;cnt1 <= max_int;++cnt1)
    	{
    		if(m[i][cnt1] >= 1)
    		{
    			m[i][cnt1]--,m[cnt1][i]--;
    			dfs(cnt1);
    		}
    	}
    	l[++cnt]=i;
    }
    int main()
    {
    	cin >> n;
    	for (int i = 1;i <= n;++i){
    		cin >> x >> y;
    		m[x][y]++,m[y][x]++;
    		d[x]++,d[y]++;
    		max_int = max(max_int,max(x,y));
    	}
    	for(int i = 1;i <= max_int;++i)
    	{
    		if(d[i]%2)
    		{
    			sum=i;
    			break;
    		} 
    	}
    	dfs(sum);
    	for(int i = cnt ; i >= 1;i--){
    		cout << l[i] << endl;
    	}
    }
    

    信息

    ID
    596
    时间
    1000ms
    内存
    256MiB
    难度
    8
    标签
    递交数
    159
    已通过
    21
    上传者