Poj 1523 SPF 关节点

简介:

 经典的关节点例题,要注意只有1个点的情况

/*
author:jxy
lang:C/C++
university:China,Xidian University
**If you need to reprint,please indicate the source**
*/
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
using namespace std;
int org[1001][1001],n;
bool ok;
int dph[1001],low[1001],vis[1001],Ans[1001];
void dfs(int u,int d)//Tarjan
{
    dph[u]=low[u]=d;
    vis[u]=1;
    int ans=0;
    for(int v=1;v<=n;v++)
    {
        if(!org[u][v])continue;
        if(vis[v])
        {
            low[u]=min(low[u],dph[v]);
        }
        else
        {
            dfs(v,d+1);
            if(low[v]>=dph[u])ans++;
            low[u]=min(low[u],low[v]);
        }
    }
    if(u==1&&ans>=1)Ans[u]=ans-1;
    else Ans[u]=ans;
}
int main()
{
    int a,b,T=0;
    while(~scanf("%d",&a)&&a)
    {
        n=0;
        scanf("%d",&b);
        memset(org,0,sizeof(org));
        if(T)puts("");
        T++;
        org[a][b]=org[b][a]=1;
        n=max(n,max(a,b));
        while(~scanf("%d",&a)&&a)
        {
            scanf("%d",&b);
            org[a][b]=org[b][a]=1;
            n=max(n,max(a,b));
        }
        ok=0;
        memset(Ans,0,sizeof(Ans));
        memset(vis,0,sizeof(vis));
        printf("Network #%d\n",T);
        dfs(1,1);
        for(int i=1;i<=n;i++)
        {
            if(Ans[i])
                ok=1,
                printf("  SPF node %d leaves %d subnets\n",i,Ans[i]+1);
        }
        if(!ok)printf("  No SPF nodes\n");
    }
}


目录
相关文章
|
运维 搜索推荐 数据安全/隐私保护
什么是C端 什么是B端 这里告诉你
C端产品早已将运营专业化,并细化到各维度的运营了,比如运营的工种可以细分为“活动运营岗、用户运营岗、增长裂变岗、内容运营岗”等等。
15321 0
什么是C端 什么是B端 这里告诉你
|
编解码 运维 监控
4.1 钉钉宜搭大屏介绍|学习笔记
快速学习4.1 钉钉宜搭大屏介绍
4.1 钉钉宜搭大屏介绍|学习笔记
|
10月前
|
存储 人工智能 缓存
【AI系统】Ascend C 语法扩展
Ascend C 是基于标准 C++ 扩展的编程语言,专为华为昇腾处理器设计。本文介绍了 Ascend C 的基础语法扩展、API(基础与高阶)、关键编程对象(数据存储、任务间通信与同步、资源管理及临时变量),以及如何利用这些特性高效开发。通过华为自研的毕昇编译器,Ascend C 实现了主机与设备侧的独立执行能力,支持不同地址空间的访问。API 包括计算、数据搬运、内存管理和任务同步等功能,旨在帮助开发者构建高性能的 AI 应用。
280 2
【AI系统】Ascend C 语法扩展
|
10月前
Next.js 实战 (二):搭建 Layouts 基础排版布局
本文介绍了作者在Next.js v15.x版本发布后,对一个旧项目的重构过程。文章详细说明了项目开发规范配置、UI组件库选择(最终选择了Ant-Design)、以及使用Ant Design的Layout组件实现中后台布局的方法。文末展示了布局的初步效果,并提供了GitHub仓库链接供读者参考学习。
313 1
Next.js 实战 (二):搭建 Layouts 基础排版布局
|
10月前
|
人工智能 搜索推荐 决策智能
不靠更复杂的策略,仅凭和大模型训练对齐,零样本零经验单LLM调用,成为网络任务智能体新SOTA
近期研究通过调整网络智能体的观察和动作空间,使其与大型语言模型(LLM)的能力对齐,显著提升了基于LLM的网络智能体性能。AgentOccam智能体在WebArena基准上超越了先前方法,成功率提升26.6个点(+161%)。该研究强调了与LLM训练目标一致的重要性,为网络任务自动化提供了新思路,但也指出其性能受限于LLM能力及任务复杂度。论文链接:https://arxiv.org/abs/2410.13825。
182 12
|
12月前
|
存储 索引
数组的特点
数组是一种线性数据结构,用于存储固定大小的顺序集合。每个元素在数组中都有一个唯一的索引,可以快速访问和修改。数组支持随机访问,但插入和删除操作较慢,因为需要移动后续元素。适用于需要频繁读取数据的场景。
|
安全 物联网 API
LabVIEW常用的加密硬件
LabVIEW常用的加密硬件
148 2
|
小程序 前端开发 开发工具
Node+GitLab实现小程序CI系统
Node+GitLab实现小程序CI系统
222 0
|
存储 SQL 缓存
大数据基本概念与应用场景
大数据基本概念与应用场景