No.33 - POJ1523 邻接表Tarjan算法 找关节点

使用MID360在室内快速定位 在预构建的点云地图中实现实时3D全球定位。通过融合FAST-LIO的低频全局定位(约0.5~0.2Hz)和高频里程计,整个系统的计算效率很高。消除里程计的累计误差初始定位可以通过RVIZ的粗略手动估计或来自另一个传感器/算法的姿势来提供。 阅读详情

Tarjan算法核心:

void dfs(int now,int v){
    V[now] = low[now] = v;
    for(int i=pre[now];i!=0;i=E[i].pre){
        if(V[E[i].to] == 0){
            dfs(E[i].to,v+1);
            low[now] = min(low[now],low[E[i].to]);
            if(low[E[i].to] >= V[now]) sub[now]++;
        }else{
            low[now] = min(low[now],V[E[i].to]);
        }
    }
}

这题有个很蛋疼的地方,题目没有说明,输出一定要按节点序号。
第一次输出直接dfs搜索的,也省的统计了,果断WA掉。

// ShellDawn
// POJ1523
// No.33

#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<queue>
#include<vector>
#include<math.h>
#define MM(x,y) memset(x,y,sizeof(x))
#define INF 0x3f3f3f3f
#define LL long long
using namespace std;
//

#define maxn 1005
int low[maxn]; // 能到达的最低层次
int V[maxn]; // dfs层次
int sub[maxn]; // 区块
bool flag; // 是否有SPF

struct Edge{
    int to;
    int pre;
};
Edge E[maxn*maxn];
int pre[maxn];
int cnt;

void addE(int a,int b){
    E[cnt].to = b;
    E[cnt].pre = pre[a];
    pre[a] = cnt++;
    E[cnt].to = a;
    E[cnt].pre = pre[b];
    pre[b] = cnt++;
}

void dfs(int now,int v){
    V[now] = low[now] = v;
    for(int i=pre[now];i!=0;i=E[i].pre){
        if(V[E[i].to] == 0){
            dfs(E[i].to,v+1);
            low[now] = min(low[now],low[E[i].to]);
            if(low[E[i].to] >= V[now]) sub[now]++;
        }else{
            low[now] = min(low[now],V[E[i].to]);
        }
    }
}

int main(){
    //freopen("A.txt","r",stdin);
    int a,b;
    int T = 1;
    while(~scanf("%d",&a) && a){
        if(T != 1) puts("");
        printf("Network #%d\n",T++);
        cnt = 1; MM(pre,0);
        int N = 1;
        scanf("%d",&b);
        addE(a,b); 
        N = max(N,a); N = max(N,b);
        while(~scanf("%d",&a) && a){
            scanf("%d",&b);
            addE(a,b);
            N = max(N,a); N = max(N,b);
        }
        MM(V,0); MM(sub,0); MM(low,0);
        dfs(1,1);
        flag = false;
        if(sub[1] > 1){
            flag = true;
            printf("  SPF node %d leaves %d subnets\n",1,sub[1]);
        }
        for(int i=2;i<=N;i++){
            if(sub[i]!=0){
                flag = true;
                printf("  SPF node %d leaves %d subnets\n",i,sub[i]+1);
            }
        }
        if(!flag) printf("  No SPF nodes\n");
    }    
    return 0;
}
期末求生指南:手把手教你用F12开发者工具绕过百一测评的切屏检测(JavaScript/jQuery实战) 本文详细介绍了如何利用F12开发者工具绕过百一测评的切屏检测,通过分析JavaScript/jQuery中的blur()和focus()事件监听机制,提供实战技巧动态修改代码。文章涵盖事件监听定位、代码修改方法及应对高级检测机制的策略,适合需要临时解决线上考试限制的学生参考。 阅读详情

相关推荐

Simulink单相桥式有源逆变电路仿真:从器件选型到波形分析(MATLAB 2018a实战)

本文基于MATLAB 2018a的Simulink平台,详细演示了单相桥式有源逆变电路的完整仿真流程。从Simscape/Power Systems库的器件选型、参数配置,到触发脉冲设置与电路连接,逐步指导搭建仿真模型。通过调整触发角α,直观展示了电路从整流到有源逆变的工作状态切换,并深入分析了负载电压、电流波形,以及逆变颠覆现象的产生条件与特征。

cake8的博客 1159

POJ 1523 (割点+连通分量)

题目链接: http://poj.org/problem?id=1523 题目大意:连通图,找图中割点,并计算切除该割点后,图中的连通分量个数。 解题思路: POJ的数据很弱。 Tarjan法求割点。 pre数组,记录这个点的dfs时间位置。 割点的条件是lowv&gt;=pre[u], 即子点比父点先dfs,这时候父点就没有意义了,切掉父点连通分量数肯定会增加。 同时注意特判只有两...

weixin_34203426的博客 266

XTDrone平台FAST-LIO2与ego-planner结合路径规划部署

之前做了XTDrone平台FAST-LIO2的部署现在将其结合ego-planner进行导航规划,之前查看教程是使用视觉进行定位导航的,现在重新学习。修改advanced_param_xtdrone.xml,这里有视觉信息,不修改会报错显示为输入视觉话题信息。怎么描述 ,感觉当时觉得很难的问题突然就给解决了,一顿复杂,最近勤更新吧,继续开始学习。还有一个想法就是两个rviz结合在一起启动,写了一个demo,融合的不太好感觉额。改为只使用雷达点云,这里仿真的话题是/scan。

m0_56093217的博客 1079

poj1144(割点)

题意:给出N,表示网络数;在每个街区的第一行中,有N<100的位置数,再给出一个最多N行的每一行都包含一个地方的数目,然后是从这个地方直接到的一些地方的数目。代表第一个数和后面的其他数都是连接的。 求割点的数目: 注意求解割点的内容:以下内容是在自己学习中总结出来的: 1.割点:在无向图中,若删去该点后图不连通,则此点为割点。 2.low[u]定义:表示在DFS回溯的前提下,该节点vi不通过父节点到vi这条边所能连通的顶点时间戳最小值。初始时,low[i]=dfn[i]当dfs处理到末尾的向前回溯,同

Keep_Trying_Go的博客 570

Oracle11g安装教程、配置实例、监听、客户端程序详解_Windows篇

Oracle11g安装教程、配置实例、监听、客户端程序详解_Windows篇 文章目录Oracle11g安装教程、配置实例、监听、客户端程序详解_Windows篇前言一、数据库的安装前准备,前提是没有安装过!!!二、仅安装数据库软件(数据库运行环境)三、添加数据库实例四、设置监听程序,让数据库可以通过网络访问五、为目标数据库设置网名总结 前言 如果需要安装包:联系我看到会给你链接,因为现在官网已经不提供10g,11g的安装包了,在网盘保存望悉知(回复不会很及时,下班看到会回复敬请谅解)。 提示:以下

zhx__的博客 5630

计算机毕业设计springboot基于微信平台的二次元手办商场小程序【附源码】

选题背景: 随着二次元文化的兴起和普及,越来越多的人开始对二次元角色产生了浓厚的兴趣和喜爱。手办作为二次元文化的重要载体之一,成为了许多二次元爱好者收藏和展示的对象。然而,在传统的线下手办商场中,消费者往往面临着时间、空间和选择的限制。因此,基于微信平台的二次元手办商场小程序应运而生。 选题意义: 首先,基于微信平台的二次元手办商场小程序能够打破地域限制,使得用户可以随时随地通过手机进行购物。无论是在家中、上班途中还是旅行中,用户都能够方便地浏览和购买自己喜欢的手办,极大地提高了购物的便利性和灵活性。

拉期程序 450

POJ 1523(求割点)

求割点入门题! ……死调一下午+晚上才发现把‘node'打成’nodes'了…… Program P1523; const maxedge=999000; maxn=10000; var edge,tail:array[1..maxedge] of longint; size:longint; head:array[1..maxn] of longint; ...

爱.NET 189

DeepSeek+Dify实战:零代码构建智能SQL生成器

本文详细介绍了如何利用DeepSeek和Dify零代码构建智能SQL生成器,帮助非技术人员通过自然语言查询数据库。文章涵盖从数据准备、知识库设计到Agent配置的全流程,并提供了优化技巧和实际应用案例,显著提升团队数据查询效率。

weixin_29311017的博客 418

POJ-1523(无向图割点将图分成几部分)

题目:http://poj.org/problem?id=1523

还有多远 823

Windows 11 安装 JDK 11:下载、安装、配置环境变量、验证

本文详细介绍了在 Windows 11 系统中安装 JDK 11 的完整流程,包括从 Oracle 官网下载压缩包、解压到自定义目录、配置 JAVA_HOME 与 Path 环境变量,并验证安装是否成功。文章还包含一个专为 JDK 11 新特性设计的测试程序,涵盖 Lambda 表达式 var 语法、HTTP 客户端 API、字符串增强方法等,帮助读者确认安装版本正确无误,适合初学者和需要多版本 JDK 共存的开发者参考。

寒水馨 · 轻量级技术文档 · hanshuixin.org 2777

【MATLAB例程】三维下的IMM(交互式多模型),模型使用CV(匀速)和CA(匀加速),滤波使用EKF。附完整代码

CV模型:状态包含位置、速度和零加速度(9维状态),状态转移矩阵忽略加速度项CA模型:完整包含位置、速度和加速度(9维状态),状态转移矩阵包含二次项过程噪声矩阵Q分别根据两种模型的运动特性推导。

985工科博士毕业,专攻定位、导航和滤波等算法研究。从业10年,主要使用MATLAB 560

poj 1523(无向图求割点)

1 /* 2 构建一棵dfs树,序列dfn[i]为深度优先数,表示dfs时访问i节点的序号,low[i]表示从i节点出发能访问到的最小的深度优先数。 3 4 当且仅当节点u满足如下两个条件之一时,u为割点: 5 1.u为dfs树的根,且u至少有两个子节点。 6 2.u不是dfs树的根,至少存在一个节点v是u的子节点,且low[v]>=dfn[u]。 ...

weixin_30588827的博客 181

AD22里面封装修改后,同步到PCB图里面

【摘要】本文介绍了Altium Designer 22中同步更新元件封装的三种方法:1)从PCB库直接更新:在PCB库面板右键选择"Update PCB With[封装名]";2)通过原理图标准更新:使用Design->Update PCB Document菜单;3)在PCB编辑器中验证更新:通过Tools->Update From PCB Libraries菜单。所有方法最终都需通过ECO(工程变更订单)确认变更,建议执行前仔细核对变更内容。这些方法适用于AD22及早期版本

whm128的博客 1758

危险系数 蓝桥杯 求两点间割点 tarjan && poj 1523 SPF Apare_xzc

危险系数 蓝桥杯 求两点间割点 tarjan && poj 1523 题面 问题描述 抗日战争时期,冀中平原的地道战曾发挥重要作用。 地道的多个站点间有通道连接,形成了庞大的网络。但也有隐患,当敌人发现了某个站点后,其它站点间可能因此会失去联系。 我们来定义一个危险系数DF(x,y): 对于两个站点x和y (x != y), 如果能找到一个站点z,当z被敌人破坏后,x和y不连...

Apare_xzc的博客 501

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

POJ1523 SPF 单点故障

POJ1523 题意很简单,求删除割点后原先割点所在的无向连通图被分成了几个连通部分(原题说prevent at least one pair of available nodes from being able to communicate on what was previously a fully connected network,阻止至少一对可用节点能够在先前完全连接的...

baben4194的博客 251

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

【连通图|关节点】POJ-1523 SPF

求出给出图中的关节点,以及去掉该点之后图被分为多少个连通分量。

JSure的代码库 943

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

poj1523—SPF(tarjan算法求无向图中所有的割点)

题目链接:传送门 SPF Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 9167   Accepted: 4152 Description Consider the two networks shown below. Assuming that da

zhiyuanjiang的博客 473

POJ 1523-SPF(Tarjan算法-关节点)

SPF Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 8018   Accepted: 3675 Description Consider the two networks shown below. Assuming that data moves around

Some. 682

POJ-1523 SPF (割点[Tarjan])

找不到练习寻找割点的裸的简单题了,感觉写法与讲义还是有些差别,但是明白之后发现这样写更简洁明了 割点:①若u为树根,且u有多余一个子树 ②若u不为树根,且存在(u,v)为树枝边(或称父子边,即u为v在搜索树中的父亲),使得dfn[u]<=low[v] 桥:当(u,v)为树枝边,且满足dfn[u]<low[v](前提是其没有重边)

idealism_xxm的专栏 500

poj1523 SPF 无向连通图 求割点 关节点 tarjan算法

SPF Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 5103   Accepted: 2347 Description Consider the two networks shown below. Assuming that data moves around th

习惯与规则决定命运 1320

poj 1523 SPF

                        poj 1523SPF Time Limit:1000MS Memory Limit:10000K Total Submissions:8920 Accepted:4047 Description Consider the two networks shown below. ...

weixin_33729196的博客 161

POJ 1523 SPF(Tarjan)

Consider the two networks shown below. Assuming that data moves around these networks only between directly connected nodes on a peer-to-peer basis, a failure of a single node, 3, in the network on th

光明~~~ 2万+

poj 1523 SPF(tarjan判割点

002:SPF 查看提交统计提问 总时间限制: 1000ms 内存限制: 65536kB 描述 Consider the two networks shown below. Assuming that data moves around these networks only between directly connected nodes on a peer-to-peer basis, a f...

CSer 332

POJ 1523 SPF

tarjan求割点

sdfzrlt的博客 397

[poj1523 SPF]tarjan算法求割点

SPF Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 6304   Accepted: 2897 Description Consider the two networks shown below. Assuming that data moves around th

When you go away 724

poj 1523 SPF(模板题)(Tarjan 关节点的朴素算法)

poj 1523 SPF(模板题)(Tarjan 关节点的朴素算法),这是一个求无向图的关节点模板题,需要学会Tarjan算法。

sunny crazy 589
上一篇: No.32 - POJ2125 - 关于最小割的割边或割点
下一篇: No.34 - Codeforces777B 田忌赛马 贪心
ShellDawn
博客等级 码龄10年 75粉丝 756原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值