zoukankan      html  css  js  c++  java
  • 欧拉回路链表——poj2230

    http://poj.org/problem?id=2230

    vector

    View Code
    #include<iostream>
    #include<vector>
    using namespace std;

    vector<int>map[10009];

    void init(int n)
    {
    int i;
    for(i=1;i<=n;i++)
    map[i].clear();
    }

    void find(int now)
    {
    int i;
    for(i=1;i<=map[now].size();i++)
    {
    while(map[now][i-1]!=0){
    int temp=map[now][i-1];
    map[now][i-1]=0;
    find(temp);

    }
    }
    printf("%d\n",now);
    }


    int main()
    {
    int n,m;
    while(scanf("%d%d",&m,&n)!=EOF)
    {
    int i,j;
    init(m);

    int a,b;
    for(i=1;i<=n;i++)
    {
    scanf("%d%d",&a,&b);
    map[a].push_back(b);
    map[b].push_back(a);
    }

    find(1);
    }

    return 0;
    }

    静态链表

    View Code
    #include<iostream>
    #include<cstdio>
    #include<string.h>
    #include<stack>
    using namespace std;
    const int MAX=10005;
    struct node
    {
    int v,next,vis;
    }g[MAX*10];
    int adj[MAX];
    int n,m,e;
    void add(int u,int v)
    {
    g[e].v=v; g[e].vis=0; g[e].next=adj[u]; adj[u]=e++;
    }
    void dfs(int u)
    {
    for(int i=adj[u];i!=-1;i=g[i].next)
    {
    if(!g[i].vis)
    {
    g[i].vis=1;
    dfs(g[i].v);
    }
    }
    printf("%d\n",u);
    }
    int main()
    {
    int i,j;
    memset(adj,-1,sizeof(adj));
    e=0;
    scanf("%d%d",&n,&m);
    while(m--)
    {
    scanf("%d%d",&i,&j);
    add(i,j);
    add(j,i);
    }
    dfs(1);
    return 0;
    }

    ps:静态链表速度比STL慢,想不通


  • 相关阅读:
    一条命令深度清理你的mac
    将以太坊封装为 ERC20
    golang subprocess tests
    go 笔记
    readme
    如何使用 channel
    修改vscode caipeiyu.writeCnblog ,简化博客发布
    thedao
    firefox 59 无法使用 pac 代理上网
    scrapy简单使用
  • 原文地址:https://www.cnblogs.com/huhuuu/p/2435372.html
Copyright © 2011-2022 走看看