• Codeforces Beta Round #94 div 2 B


    B. Students and Shoelaces
    time limit per test
    2 seconds
    memory limit per test
    256 megabytes
    input
    standard input
    output
    standard output

    Anna and Maria are in charge of the math club for junior students. When the club gathers together, the students behave badly. They've brought lots of shoe laces to the club and got tied with each other. Specifically, each string ties together two students. Besides, if two students are tied, then the lace connects the first student with the second one as well as the second student with the first one.

    To restore order, Anna and Maria do the following. First, for each student Anna finds out what other students he is tied to. If a student is tied to exactly one other student, Anna reprimands him. Then Maria gathers in a single group all the students who have been just reprimanded. She kicks them out from the club. This group of students immediately leaves the club. These students takes with them the laces that used to tie them. Then again for every student Anna finds out how many other students he is tied to and so on. And they do so until Anna can reprimand at least one student.

    Determine how many groups of students will be kicked out of the club.

    Input

    The first line contains two integers n and m — the initial number of students and laces (). The students are numbered from 1 to n, and the laces are numbered from 1 to m. Next m lines each contain two integers a and b — the numbers of students tied by the i-th lace (1 ≤ a, b ≤ n, a ≠ b). It is guaranteed that no two students are tied with more than one lace. No lace ties a student to himself.

    Output

    Print the single number — the number of groups of students that will be kicked out from the club.

    Examples
    input
    3 3
    1 2
    2 3
    3 1
    output
    0
    input
    6 3
    1 2
    2 3
    3 4
    output
    2
    input
    6 5
    1 4
    2 4
    3 4
    5 4
    6 4
    output
    1
    题意:给你N个点M条边的无向图;
       如果是环不管它,是树的话每次去掉根个树叶,问去掉的次数;
    思路:就是暴力别想太多。。。
    #include<iostream>
    #include<cstdio>
    #include<cmath>
    #include<string>
    #include<queue>
    #include<algorithm>
    #include<stack>
    #include<cstring>
    #include<vector>
    #include<list>
    #include<set>
    #include<map>
    #define true ture
    #define false flase
    using namespace std;
    #define ll __int64
    #define inf 0xfffffff
    int scan()
    {
        int res = 0 , ch ;
        while( !( ( ch = getchar() ) >= '0' && ch <= '9' ) )
        {
            if( ch == EOF )  return 1 << 30 ;
        }
        res = ch - '0' ;
        while( ( ch = getchar() ) >= '0' && ch <= '9' )
            res = res * 10 + ( ch - '0' ) ;
        return res ;
    }
    int du[110];
    int mapp[110][110];
    int gg[110];
    int main()
    {
        int x,y,z,i,t,q;
        scanf("%d%d",&x,&q);
        while(q--)
        {
            int u,v;
            scanf("%d%d",&u,&v);
            du[u]++;
            du[v]++;
            mapp[u][v]=mapp[v][u]=1;
        }
        int ans=0;
        while(1)
        {
            int ji=0;
            for(i=1;i<=x;i++)
            {
                if(du[i]==1)
                gg[ji++]=i;
            }
            for(i=0;i<ji;i++)
            {
                for(t=1;t<=x;t++)
                {
                    if(mapp[gg[i]][t])
                    {
                        mapp[gg[i]][t]=mapp[t][gg[i]]=0;
                        du[gg[i]]--;
                        du[t]--;
                    }
                }
            }
            if(!ji)
            break;
            ans++;
        }
        printf("%d
    ",ans);
        return 0;
    }
    View Code
  • 相关阅读:
    第三次作业
    利用LINQ to SQL 增删改查本地数据库
    【转】C#,回车,换行
    【转】C#3.0编码习惯与命名规则
    Connect to the DSP on C6A8168/DM8168/DM8148 using CCS
    【转】OpenCV 移植学习EMCV
    目标跟踪小结
    利用TortoiseSVN获取最新版本的OpenCV源码
    转图像灰度化方法总结及其VC实现
    OpenCV读取视频的格式注意点
  • 原文地址:https://www.cnblogs.com/jhz033/p/5455473.html
Copyright © 2020-2023  润新知