zoukankan      html  css  js  c++  java
  • URAL 1040 Airline Company

            原来URAL中tricky problem都是这么得微妙……

            直接将原图遍历,然后按遍历的时间将边标号即可,对于任意一个点,如果有至少两条边和其相连,那么至少有两条边的访问顺序是连续的,那么由于相邻的两个数的最大公约数是1,于是这样遍历一定能够得到解。

    #include<stdio.h>
    #include<string.h>
    #define MAXD 60
    #define MAXM 2510
    int N, M, e, first[MAXD], next[MAXM], v[MAXM], flag[MAXM], cnt;
    void add(int x, int y)
    {
        v[e] = y, flag[e] = 0;
        next[e] = first[x], first[x] = e ++;
    }
    void init()
    {
        int i, x, y;
        e = 0;
        memset(first, -1, sizeof(first));
        for(i = 0; i < M; i ++)
        {
            scanf("%d%d", &x, &y);
            add(x, y), add(y, x);    
        }
    }
    void dfs(int cur)
    {
        int i;
        for(i = first[cur]; i != -1; i = next[i])
            if(!flag[i])
            {
                flag[i] = flag[i ^ 1] = ++ cnt;
                dfs(v[i]);    
            }    
    }
    void solve()
    {
        int i, j, k;
        cnt = 0;
        for(i = 1; i <= N; i ++)
            dfs(i);
        printf("YES\n");
        printf("%d", flag[0]);
        for(i = 1; i < M; i ++)
            printf(" %d", flag[i << 1]);
        printf("\n");    
    }
    int main()
    {
        while(scanf("%d%d", &N, &M) == 2)
        {
            init();
            solve();    
        }
        return 0;    
    }
  • 相关阅读:
    致此时的自己
    感悟
    Do what you love VS Love what you do
    感悟
    JavaScript中关于date对象的一些方法
    悟透JavaScript——学习心得
    JavaScript中关于string对象的一些方法
    JavaScript中的简单语句
    w3school CSS基础教程
    SMACSS——Scalable & Modular Architecture for CSS
  • 原文地址:https://www.cnblogs.com/staginner/p/2482686.html
Copyright © 2011-2022 走看看