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;
    }
    


  • 相关阅读:
    众包兼职平台有哪些?
    提高页面速度的10种相对简单方法
    如何设计第三方账号登陆
    Nginx的配置参数中文说明
    确定你已经彻底搞懂Nginx了
    云编程,这是我见过最优雅的Web云端集成开发IDE-Cloud Studio
    Excel制作三级下拉菜单
    Excel多人共享
    spring_2_注入详解
    spring_1_工厂与第一个 Spring 程序
  • 原文地址:https://www.cnblogs.com/Jstyle-continue/p/6352024.html
Copyright © 2011-2022 走看看