[Euler Loop] poj 2230 watchcow

Source: Internet
Author: User
Tags cmath

Question link:

Http://poj.org/problem? Id = 2230

Watchcow
Time limit:3000 Ms   Memory limit:65536 K
Total submissions:6055   Accepted:2610   Special Judge

Description

Bessie's been appointed the new watch-cow for the farm. every night, it's her job to walk every SS the farm and make sure that no evildoers are doing any edevil. she begins at the barn, makes her patrol, and then returns to the barn when she's done.

If she were a more observant cow, she might be able to just walk each of M (1 <= m <= 50,000) bidirectional trails numbered 1 .. m between N (2 <= n <= 10,000) fields numbered 1 .. N on the farm once and be confident that she's seen everything she needs to see. but since she isn' t, she wants to make sure she walks down each trail exactly twice. it's also important that her two trips along each trail be in opposite directions, so that she doesn't miss the same thing twice.

A pair of fields might be connected by more than one trail. Find a path that Bessie can follow which will meet her requirements. Such a path is guaranteed to exist.

Input

* Line 1: two integers, N and M.

* Lines 2.. m + 1: two integers denoting a pair of fields connected by a path.

Output

* Lines 1 .. 2 m + 1: A list of fields she passes through, one per line, beginning and ending with the barn at Field 1. if more than one solution is possible, output any solution.

Sample Input

4 51 21 42 32 43 4

Sample output

12342143241

Hint

Output details:

Bessie starts at 1 (Barn), goes to 2, then 3, Etc...

Source

Usaco 2005 January silver

[Submit] [Go Back] [Status] [discuss]

Question meaning:

For a connected undirected graph, find out how to start from Point 1 and return to 1, and each side goes in two directions.

Solution:

Euler Loop

Abstract An edge into two directed edges.

Code:

//#include<CSpreadSheet.h>#include<iostream>#include<cmath>#include<cstdio>#include<sstream>#include<cstdlib>#include<string>#include<string.h>#include<cstring>#include<algorithm>#include<vector>#include<map>#include<set>#include<stack>#include<list>#include<queue>#include<ctime>#include<bitset>#include<cmath>#define eps 1e-6#define INF 0x3f3f3f3f#define PI acos(-1.0)#define ll __int64#define LL long long#define lson l,m,(rt<<1)#define rson m+1,r,(rt<<1)|1#define M 1000000007//#pragma comment(linker, "/STACK:1024000000,1024000000")using namespace std;#define Maxn 11000int n,m;struct Node{    int to,id;    Node(int a,int b)    {        to=a,id=b;    }};vector<vector<Node> >myv;bool vis[Maxn*10];vector<int>ans;void dfs(int cur){    for(int i=0;i<myv[cur].size();i++)    {        Node ne=myv[cur][i];        if(vis[ne.id])            continue;        vis[ne.id]=true;        dfs(ne.to);    }    ans.push_back(cur);}int main(){    //freopen("in.txt","r",stdin);   //freopen("out.txt","w",stdout);   while(~scanf("%d%d",&n,&m))   {       myv.clear();myv.resize(n+1);       for(int i=1;i<=m;i++)       {           int a,b;           scanf("%d%d",&a,&b);           myv[a].push_back(Node(b,i*2-1));           myv[b].push_back(Node(a,i*2));       }       memset(vis,false,sizeof(vis));       ans.clear();       dfs(1);       for(int i=ans.size()-1;i>=0;i--)            printf("%d\n",ans[i]);   }    return 0;}


[Euler Loop] poj 2230 watchcow

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.