• loj10100 网络


    这个题目描述好难理解呀qwq...

    传送门

    分析

    在读懂题之后我们不难发现这道题实际就是在求一张图中有多少个割点。只需要注意读入方式即可。

    代码

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<string>
    #include<algorithm>
    #include<cctype>
    #include<cmath>
    #include<cstdlib>
    #include<queue>
    #include<ctime>
    #include<vector>
    #include<set>
    #include<map>
    #include<stack>
    using namespace std;
    int n,dfn[110],low[110],cnt,sum,ans,is[110];
    vector<int>v[110];
    inline void init(){
          for(int i=0;i<=100;i++)v[i].clear();
          memset(dfn,0,sizeof(dfn));
          memset(low,0,sizeof(low));
          memset(is,0,sizeof(is));
          cnt=sum=ans=0;
    }
    inline void tarjan(int x,int fa){
          int son=0;
          dfn[x]=low[x]=++cnt;
          for(int i=0;i<v[x].size();i++)
            if(v[x][i]!=fa){
                if(!dfn[v[x][i]]){
                    son++;
                  tarjan(v[x][i],x);
                  low[x]=min(low[x],low[v[x][i]]);
                  if(dfn[x]<=low[v[x][i]])is[x]=1;
                }else low[x]=min(low[x],dfn[v[x][i]]);
          }
          if(!fa&&son==1)is[x]=0;
    }
    int main(){
          int i,j,k;
          scanf("%d",&n);
          while(n){
              init();
              int x,y;
              scanf("%d",&x);
              while(x){
                while(getchar()!='
    '){
                    scanf("%d",&y);
                    v[x].push_back(y);
                    v[y].push_back(x);
                }
                scanf("%d",&x);
              }
              for(i=1;i<=n;i++)
                if(!dfn[i])tarjan(i,0);
              for(i=1;i<=n;i++)
                if(is[i])ans++;
              printf("%d
    ",ans);
              scanf("%d",&n);
          }
          return 0;
    }
  • 相关阅读:
    SQL SERVER 如何处理带字母的自增列--【叶子】
    实现对数据进行分组小计并计算合计的实例 asp.net
    sql 随笔
    事务
    游标
    触发器
    Session的生命周期
    ASP.NET 推荐书籍
    asp.net 查询本地excel 获取信息
    使用DotNetZip压缩与解压缩
  • 原文地址:https://www.cnblogs.com/yzxverygood/p/9526318.html
Copyright © 2020-2023  润新知