zoukankan      html  css  js  c++  java
  • HDOJ 2120 Ice_cream's world I

    Ice_cream’s world I

    ice_cream’s world is a rich country, it has many fertile lands. Today, the queen of ice_cream wants award land to diligent ACMers. So there are some watchtowers are set up, and wall between watchtowers be build, in order to partition the ice_cream’s world. But how many ACMers at most can be awarded by the queen is a big problem. One wall-surrounded land must be given to only one ACMer and no walls are crossed, if you can help the queen solve this problem, you will be get a land.
    Input
    In the case, first two integers N, M (N<=1000, M<=10000) is represent the number of watchtower and the number of wall. The watchtower numbered from 0 to N-1. Next following M lines, every line contain two integers A, B mean between A and B has a wall(A and B are distinct). Terminate by end of file.
    Output
    Output the maximum number of ACMers who will be awarded.
    One answer one line.
    Sample Input
    8 10
    0 1
    1 2
    1 3
    2 4
    3 4
    0 5
    5 6
    6 7
    3 6
    4 7
    Sample Output
    3

    题意:构成了几个环。

    题解:

    void mix(int a,int b)
    {
        int x;
        int y;
        x=find(a);
        y=find(b);
        if(x!=y)
        road[x]=y;
        else
        ans++;
    
    }
    
    
    这里这样写就OK
    #include<stdio.h>
    int road[1010];
    int ans;
    int find(int a)
    {
        if(road[a]==a) return a;
        else
        return find(road[a]);
    }
    void mix(int a,int b)
    {
        int x;
        int y;
        x=find(a);
        y=find(b);
        if(x!=y)
        road[x]=y;
        else
        ans++;
    
    }
    int main()
    {
        int n,m;
        while(scanf("%d%d",&n,&m)!=EOF)
        {
            ans=0;
            for(int i=0;i<=n-1;i++)
            road[i]=i;  
            int a, b;
            for(int i=0;i<m;i++)
            {
                scanf("%d%d",&a,&b);
                mix(a,b);
            }       
            printf("%d
    ",ans);
        }
    }
  • 相关阅读:
    Codeforces Round #592 (Div. 2)C. The Football Season(暴力,循环节)
    Educational Codeforces Round 72 (Rated for Div. 2)D. Coloring Edges(想法)
    扩展KMP
    poj 1699 Best Sequence(dfs)
    KMP(思路分析)
    poj 1950 Dessert(dfs)
    poj 3278 Catch That Cow(BFS)
    素数环(回溯)
    sort与qsort
    poj 1952 buy low buy lower(DP)
  • 原文地址:https://www.cnblogs.com/-xiangyang/p/9220260.html
Copyright © 2011-2022 走看看