zoukankan      html  css  js  c++  java
  • cf

    #include <iostream>
    #include <vector>
    using namespace std;
    /****************************************************************************************************************
                    题意:
                        给你一个图,现在要你给这个图里面的边定方向,使得入度为0的点最少。
                    思路:
                        1, 对于一个连通块而言,如果里面存在一个环,那么必然所有点的入度都可以大于等于1
                            否则的话,就存在一个点的入度为0。
                        2,(判断连通块是否存在环)
                            假设当前的节点一个标号id,如果下一个要访问的节点未被访问过,
                            那么下一个访问的节点的标号是当前的id 1,
                            这里,我们先看看如果图没有环,那么会有一条路径从id开始一直往前,直到叶子节点,
                            最后一个叶子节点的标号可能是id x,那么假设的确有一个节点的标号为id x,
                            而且这个节点和id直接也相连,是否说明有环存在。除非x=1,因为如果x=1,
                            说明,实际上这个节点是和id节点直接连接的边。
                        3, 最后 dfs 一波就好了
    ****************************************************************************************************************/
    const int maxn = 1e5+7;
    vector <int> E[maxn];
    int n,m,flag;
    int vis[maxn];
    void dfs(int x,int fa)
    {
        if(vis[x]){
            flag = 1;
            return;
        }
        vis[x]=1;
        for(int i=0;i<E[x].size();i++){
            int v=E[x][i];
            if(v==fa)continue;
            dfs(v,x);
        }
    }
    int main()
    {
        while(cin>>n>>m)
        {
            for(int i=1;i<=m;i++){
                int x,y;
                cin>>x>>y;
                E[x].push_back(y);
                E[y].push_back(x);
            }
            int ans = 0;
            for(int i=1;i<=n;i++){
                if(!vis[i]){
                    flag = 0;
                    dfs(i,-1);
                    if(!flag)ans++;
                }
            }
            cout<<ans<<endl;
        }
        return 0;
    }
    


  • 相关阅读:
    D. Constructing the Array
    B. Navigation System
    B. Dreamoon Likes Sequences
    A. Linova and Kingdom
    G. Special Permutation
    B. Xenia and Colorful Gems
    Firetrucks Are Red
    java getInstance()的使用
    java 静态代理和动态代理
    java 类加载机制和反射机制
  • 原文地址:https://www.cnblogs.com/Jstyle-continue/p/6352024.html
Copyright © 2011-2022 走看看