poj_1523 SPF (求割点)(二)

2014-11-24 10:45:11 · 作者: · 浏览: 1
memset(flag,0,sizeof(flag));

times=0;
n=-1;
root=1;
}
void input()
{
int s,t;
int f=0;
int ts=1;
while(true)
{
init();
while(true)
{
scanf("%d",&s);
if(s==0)
{
f++;
if(f>=2)
return ;
break;
}
f=0;
scanf("%d",&t);
map[s][t]=map[t][s]=1;
n=max(n,max(s,t));
}

tarJan(root,-1);
int count;
int num=0;
printf("Network #%d\n",ts);
for(int i=1;i<=n;i++)
{
if(flag[i]==1)
{
//去掉i
num++;
count=0;
memset(visited,0,sizeof(visited));
for(int j=1;j<=n;j++)
{
if(!visited[j] && map[i][j] && j!=i)
{
dfs(j,i);
count++;
}
}
printf(" SPF node %d leaves %d subnets\n",i,count);
}
}
if(num==0)
{
printf(" No SPF nodes\n");
}

ts++;
printf("\n");
}


}
int main()
{
input();
return 0;
}