本文主要是介绍usaco Riding the Fences(欧拉回路模板),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
用flag记录 度数为奇数点,注意重路。
/*
ID:jinbo wu
TASK:fence
LANG:C++
*/
#include<bits/stdc++.h>
using namespace std;
int g[510][510];
stack<int> s;
int d[510];
void euler(int u)
{for(int v=1;v<=500;v++){if(g[u][v]){g[u][v]--;g[v][u]--;euler(v);s.push(v);}}
}
int main()
{int u,v;int n;freopen("fence.in","r",stdin);freopen("fence.out","w",stdout);cin>>n;for(int i=1;i<=n;i++){cin>>u>>v;g[u][v]++;g[v][u]++;d[u]++;d[v]++;}int flag=1;
for(int i=1;i<=500;i++)
if(d[i]%2)
{
flag=i;
break;
}
euler(flag);
s.push(flag);
while(!s.empty())
{cout<<s.top()<<endl;s.pop();
}
}
这篇关于usaco Riding the Fences(欧拉回路模板)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!