#include<iostream>
#include<string.h>
#include<fstream>
using namespace std;
const int gray=1;
const int white=0;
const int black=2;
const int v_num=1000;
const int start=0;
int graph[v_num][v_num];
int color[v_num];
int Time;
int discoverTime[v_num];
int rem[v_num];
int bicompDFS(int v)
{
color[v]=gray;
Time++;
int back=discoverTime[v]=Time;
for(int w=0;w<v_num;w++)
{
if(graph[v][w]==0)
continue;
if(color[w]==white)
{
if(v==start)
rem[v]++;
int wBack=bicompDFS(w);
if(wBack>=discoverTime[v])
{
if(v==start)
;
else
rem[v]++;
}
back=min(back,wBack);
}
else if(color[w]==gray)
{
back=min(discoverTime[w],back);
}
}
color[v]=black;
return back;
}
int main()
{
freopen("input.txt","r",stdin);
//init
int n=1;
while(true)
{
for(int i=0;i<v_num;i++)
{
memset(graph[i],0,sizeof(int)*v_num);
color[i]=white;
rem[i]=1;
}
rem[0]=0;
int v1,v2;
int temp=0;
while(scanf("%d",&v1)&&v1!=0)
{
temp++;
scanf("%d",&v2);
graph[v1-1][v2-1]=graph[v2-1][v1-1]=1;
// printf("%d %d\n",v1,v2);
}
if(v1==0&&temp==0)
return 0;
Time=0;
bicompDFS(start);
printf("Network #%d\n",n++);
bool flag=false;
for(int i=0;i<v_num;i++)
{
if(rem[i]>1)
{
printf(" SPF node %d leaves %d subnets\n",i+1,rem[i]);
flag=true;
}
}
if(flag==false)
printf(" No SPF nodes\n");
printf("\n");
}
return 0;
}
poj1523
最新推荐文章于 2019-07-09 23:16:38 发布
部署运行你感兴趣的模型镜像
您可能感兴趣的与本文相关的镜像
GPT-SoVITS
AI应用
GPT-SoVITS 是一个开源的文本到语音(TTS)和语音转换模型,它结合了 GPT 的生成能力和 SoVITS 的语音转换技术。该项目以其强大的声音克隆能力而闻名,仅需少量语音样本(如5秒)即可实现高质量的即时语音合成,也可通过更长的音频(如1分钟)进行微调以获得更逼真的效果
1019

被折叠的 条评论
为什么被折叠?



