zoukankan      html  css  js  c++  java
  • poj 1523--SPF

    题意:问删除某个点是否形成多个网络

    思路:求割点

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 using namespace std;
     5 const int N=1002;
     6 
     7 struct node{
     8     int to,next;
     9 }e[N*N];
    10 
    11 int head[N],tot;
    12 int dfn[N],low[N],a[N];
    13 int indexx;
    14 int n;
    15 int tt;
    16 
    17 void init(){
    18     memset(head,-1,sizeof(head));
    19     memset(dfn,0,sizeof(dfn));
    20     memset(low,0,sizeof(low));
    21     indexx=0;
    22     n=0;
    23     tt=0;
    24 }
    25 
    26 void add(int u,int v){
    27     e[tot].to=v;
    28     e[tot].next=head[u];
    29     head[u]=tot++;
    30 }
    31 
    32 void dfs(int u){
    33     dfn[u]=low[u]=++indexx;
    34     for(int i=head[u];i!=-1;i=e[i].next){
    35         int v=e[i].to;
    36         if(!dfn[v]){
    37             dfs(v);
    38             low[u]=min(low[u],low[v]);
    39             if(dfn[u]<=low[v]) {
    40                 a[u]++;
    41             }
    42         }
    43         else low[u]=min(low[u],dfn[v]);
    44     }
    45 }
    46 
    47 int main(){
    48     init();
    49     int t=1;
    50     int x,y;
    51     while(scanf("%d",&x)){
    52         if(x==0) break;
    53         init();
    54         scanf("%d",&y);
    55         add(x,y);add(y,x);
    56         n=max(max(x,y),n);
    57         while(scanf("%d",&x)&&x){
    58             scanf("%d",&y);
    59             add(x,y);add(y,x);
    60             n=max(max(y,x),n);
    61         }
    62         for(int i=2;i<=n;i++) a[i]=1;
    63         a[1]=0;
    64         dfs(1);
    65        printf("Network #%d
    ",t++);
    66               for(int i=1;i<=n;i++)
    67               if(a[i]>1)
    68               {
    69                        printf("  SPF node %d leaves %d subnets
    ",i,a[i]);
    70                        tt=1;
    71               }
    72            if(!tt)printf("  No SPF nodes
    ");
    73        printf("
    ");
    74     }
    75     return 0;
    76 }
  • 相关阅读:
    18.11.5 考试总结
    18.11.2 考试总结
    18.11.1 考试总结
    洛谷 P1084 疫情控制 noip2013D2T3
    18.10.31 考试总结
    洛谷P1312 Mayan游戏 noip2011D1T3
    18.10.30 考试总结
    【考前复习_各类模板之补充】
    NOIP2016之反面教材提供
    【最后的抒情】【离NOIP还有9个小时】
  • 原文地址:https://www.cnblogs.com/hhxj/p/7011278.html
Copyright © 2011-2022 走看看