• poj 1523 求割点把一个图分成几个联通部分


    #include<stdio.h>
    #include<string.h>
    #define N  1100
    struct node {
    int u,v,next;
    }bian[N*N*2];
    int head[N],dfn[N],low[N],index,cut[N],yong,visit[N],dd[N],len,vis[N];
    void init() {
    memset(head,-1,sizeof(head));
    memset(dfn,0,sizeof(dfn));
    memset(low,0,sizeof(low));
    memset(cut,0,sizeof(cut));
    index=0;yong=0;
    memset(visit,0,sizeof(visit));
    }
    int Min(int a,int b) {
    return a>b?b:a;
    }
    void addedge(int u,int v) {
    bian[yong].u=u;
    bian[yong].v=v;
    bian[yong].next=head[u];
    head[u]=yong++;
    }
    void tarjan(int u,int pre) {
    dfn[u]=low[u]=++index;
    int i;
    for(i=head[u];i!=-1;i=bian[i].next) {
        int v=bian[i].v;
        if(!dfn[v]) {
            tarjan(v,u);
            low[u]=Min(low[u],low[v]);
            if(low[v]>=dfn[u])
                cut[u]++;
        }
        else
            low[u]=Min(low[u],dfn[v]);
    }
    if(pre<0)
        cut[u]--;
    }
    int main() {
        int a,b,i,j,in=0,flag;
         while(scanf("%d",&a),a) {
                scanf("%d",&b);
                init();
                addedge(a,b);
                addedge(b,a);
         visit[a]=visit[b]=1;
            while(scanf("%d",&a),a) {
                scanf("%d",&b);
                addedge(a,b);
                addedge(b,a);
                     visit[a]=visit[b]=1;
            }
            printf("Network #%d
    ",++in);
            flag=0;
            for(i=1;i<=1000;i++)
            if(!dfn[i]&&visit[i])
                tarjan(i,-1);
            for(i=1;i<=1000;i++)
                if(visit[i]&&cut[i])
                    if(cut[i]+1>0) {
                        printf("  SPF node %d leaves %d subnets
    ",i,cut[i]+1);
                    flag=1;
                    }
            if(flag==0)
                printf("  No SPF nodes
    ");
            printf("
    ");
         }
    return 0;
    }
    

  • 相关阅读:
    cross apply / outer apply
    查看锁表
    常用的一些占位符
    如何将法向量转换到世界空间
    Essential Mathematics for Games and Interactive Applications
    下一本要看的书
    第五章第五节 四元数
    向量坐标转换、旋转矩阵以及视图转换
    怪诞行为学摘录
    unity3d发布apk资源打包和访问方式
  • 原文地址:https://www.cnblogs.com/thefirstfeeling/p/4410682.html
Copyright © 2020-2023  润新知