hdu 3836 Equivalent Sets(强连通,tarjan,4级)

Kigurumi角色扮演全流程制作指南:从乳胶衣到头壳的工程化实践 角色扮演(Cosplay)作为一种融合了艺术表达与手工制作的文化形式,其核心在于通过服装、道具和化妆来实现对角色的视觉还原。随着爱好者对还原度和视觉冲击力追求的不断提升,一种更为极致的形式——Kigurumi(着ぐるみ)逐渐受到关注。它通常涉及全包式紧身衣(如乳胶材质的Zentai)与大型定制头壳的结合,其本质是一套涵盖材料科学、结构力学和人机工学的系统工程。理解其制作原理,不仅关乎最终的美学呈现,更直接关系到穿戴者的安全与健康。例如,乳胶材质的选择与处理涉及材料特性与过敏风险,而头壳的通风、视野与配重设计 阅读详情

Equivalent Sets

Time Limit: 12000/4000 MS (Java/Others)    Memory Limit: 104857/104857 K (Java/Others)
Total Submission(s): 1794    Accepted Submission(s): 615


Problem Description
To prove two sets A and B are equivalent, we can first prove A is a subset of B, and then prove B is a subset of A, so finally we got that these two sets are equivalent.
You are to prove N sets are equivalent, using the method above: in each step you can prove a set X is a subset of another set Y, and there are also some sets that are already proven to be subsets of some other sets.
Now you want to know the minimum steps needed to get the problem proved.
 

Input
The input file contains multiple test cases, in each case, the first line contains two integers N <= 20000 and M <= 50000.
Next M lines, each line contains two integers X, Y, means set X in a subset of set Y.
 

Output
For each case, output a single integer: the minimum steps needed.
 

Sample Input
  
4 0 3 2 1 2 1 3
 

Sample Output
  
4 2
Hint
Case 2: First prove set 2 is a subset of set 1 and then prove set 3 is a subset of set 1.
 

Source
 

Recommend
xubiao

题目大意为给定一张有向图,求加多少条边之后整个图是一张强连通分量。

思路大致是:先将图中的强连通分量缩点,使得图变成一张无环图,这个时候图上剩余k1个出度为0的点和k2个入度为0的点,将出度为0的点连一条有向边到入度为0的点,此时形成一个环,这个环是一个强连通分量,可以再缩成一个点,当图中只剩一个点的时候,就完成了任务。显而易见的是最大只要连接max{k1,k2}条边,就能将所有的点缩成一个点。

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
const int mm=2e4+9;
const int mn=5e4+9;
int n,m;
int head[mm],ver[mn],next[mn];
int dfn[mm],e_to[mm],low[mm],dex,edge,cnt,stack[mm],top;
bool instack[mm];
int ideg[mm],odeg[mm];
void add(int u,int v)
{
    ver[edge]=v;
    next[edge]=head[u];
    head[u]=edge++;
}
void data()
{
    edge=dex=cnt=top=0;
    memset(head,-1,sizeof(head));
    memset(dfn,0,sizeof(dfn));
    memset(ideg,0,sizeof(ideg));
    memset(odeg,0,sizeof(odeg));
    memset(instack,0,sizeof(instack));
}
void tarjan(int u)
{
    int v;
    dfn[u]=low[u]=++dex;
    stack[top++]=u;
    instack[u]=1;
    for(int i=head[u]; ~i; i=next[i])
    {
        v=ver[i];
        if(instack[v])
        {
            low[u]=low[u]<dfn[v]?low[u]:dfn[v];
        }
        else if(!dfn[v])
        {
            tarjan(v);
            low[u]=low[u]<low[v]?low[u]:low[v];
        }
    }

    if(low[u]==dfn[u])
    {
        ++cnt;
        do
        {
            v=stack[--top];
            instack[v]=0;
            ///if(cnt==3)cout<<"v="<<v<<endl;
            e_to[v]=cnt;
        }
        while(u^v);
    }

}
int solve()
{   int u,v;
    for(int i=1; i<=n; ++i)
        if(!dfn[i])
        tarjan(i);
    for(int i=1; i<=n; ++i)
    {
     for(int j=head[i];~j;j=next[j])
     { u=i;
       v=ver[j];
       if(e_to[v]^e_to[u])
       ++odeg[e_to[u]],++ideg[e_to[v]];
     }
    }
    int in=0,out=0;
   /// for(int i=1;i<=n;++i)
   /// cout<<i<<" "<<e_to[i]<<" ";puts("");
    if(cnt==1)return 0;
    for(int i=1;i<=cnt;++i)///缩点后的点数
    {
      if(!ideg[i])++in;
      if(!odeg[i])++out;
    }
    return in>out?in:out;
}
int main()
{
    int a,b;
    while(~scanf("%d%d",&n,&m))
    {   data();
        for(int i=0; i<m; ++i)
        {
            scanf("%d%d",&a,&b);
            add(a,b);
        }
        int ans=solve();
        printf("%d\n",ans);
    }
}




【STM32单片机】RS485通信—基于STM32G474芯片 做项目需要用485通信来控制Go电机参考资料:【【STM32F103C8T6系列】10. 实验例程——485(USART串口)通讯实验】 https://www.bilibili.com/video/BV19w411r7ka/?PDF: STM32G474 开发指南 正点原子 DMG474 开发板教程 第28章485只是物理层,代码逻辑还是UART串口通信,相当于是电路有RS485转换芯片,所以还是用UART串口通信方式。 阅读详情

相关推荐

自旋玻璃(spin glass)、自旋冰(spin ice)和量子自旋液体(quantum spin liquid)(之二)

具有相同电荷的电子相互排斥。结果,为了在极其拥挤的环境中相互超越,他们不得不改变自己的行为。剑桥大学和英国伯明翰大学于 2009 年 7 月发表的研究表明,电子可以通过量子隧穿从金属表面跳到相近位置的量子线上,这样做后,将分离成两个准粒子,命名为的自旋子和全子。Van den Brink、Khomskii 和 Sawatzky 在 1997-1998 年对轨道子进行了理论上的预测。在 2011 年 9 月发给出版商的论文中报告了它作为一个单独的准粒子的实验观察结果。

qq_32515081的博客 1万+

HDU 3836 Equivalent Sets (tarjan求强联通分量)

题目链接:HDU 3836 题面: Equivalent Sets Time Limit: 12000/4000 MS (Java/Others)    Memory Limit: 104857/104857 K (Java/Others) Total Submission(s): 4074    Accepted Submission(s): 1433 Prob

David_Jett 1149

告别OLE!Delphi操作Excel的3种轻量级方案横向评测(FlexCel/XLSReadWriteII/LibXL)

本文深入评测了Delphi操作Excel的三种轻量级方案:FlexCel、XLSReadWriteII和LibXL。通过技术架构、API设计、性能测试和实战案例的全面对比,帮助开发者选择最适合的工具,提升Excel文件处理效率,告别传统OLE方案的依赖和性能问题。

onion的博客 929

HDU 3836 Equivalent Sets(强连通分量 Tarjan缩点)

Tarjan求强连通分量详解在前一篇文章 把一个有向图变为强连通分量至少要加几条边? Tarjan缩点后,设a为入度为0的点数,b为出度为0的点数,答案max(a,b)。 注意:如果图本来是强连通的,要特判为0,否则输入会为1 代码: #include #include #include using namespace std; #include #include

Baoli1008的专栏 571

abaqus wcm插件下载_Abaqus随机短纤维增强复合材料建模插件

文末附Abaqus随机短纤维增强复合材料建模插件下载链接前言短纤维增强复合材料相对于长纤维增强复合材料来说更容易制备,且短纤维的填充性能略有改善,可制造复杂产品,广泛应用于车辆、航空航天、建筑等行业,对短纤维增强复合材料进行细观力学分析,可对其宏观力学性能进行预测、分析破坏机理等。接下来对随机短纤维增强复合材料建模插件进行介绍。NO.1 【算法简介】难点一:此插件核心在于判断生成的纤维是...

weixin_39974882的博客 2833

别再只盯着MES了!半导体/面板厂CIM系统全家桶(EAP/YMS/SPC)保姆级入门指南

本文深入解析半导体制造中的CIM系统,涵盖EAP、YMS和SPC等关键子系统的协同工作。通过实战案例和技术细节,展示如何利用CIM系统提升生产效率、良率管理和设备维护,为半导体/面板厂提供全面的实施指南和优化策略。

weixin_33693070的博客 464

HDU 3836 —— Equivalent Sets

原题:http://acm.hdu.edu.cn/showproblem.php?pid=3836 题意:问至少要加几条边,使得该图强连通(即图中任意两点都连通); 思路:先求原图的强连通分量,然后进行缩点构建新图,在新图中,求入度 = 0 和 出度 = 0 的个数,两者的最大值即为答案; #include #include #include #include using n

0x3f3f3f3f 455

用了7年的 source insight 3.5 背景色及字体配置(提升code效率)

在此记录并share用了7年的 source insight 3.5 背景色及字体配置,提升阅读代码效率

Chasing Freedom 7524

Equivalent Sets HDU - 3836(tarjan模板)

题意:给出n个点和m条边,问最少须添加多少个边,使得任意两点间能互通。给出的m条边是有向的。 题解: 先说结论:这是一个小题型(至少加几条边使得全图强连通),很多题目都是这样。我们只需利用tarjan求出连通块的入度为零的数量和出度为零的数量的最大值即可。 原因简析:要想使得所有点联通,则只需把各个连通块用边连起来即可,所以我们要么是所有连通块的入度均不为零,要么解决出度均不为0(其实在解决...

Alanrookie的博客 266

论文必备 - YOLOv12热力图可视化,支持指定模型,指定显示层,设置置信度,以及10种可视化实现方式

本文带来的是YOLOv12热力图可视化功能,支持,以及。我们经常看到一些论文里绘制了不同的热力图,一方面能够直观的感受其模型的有效性,另一方面也丰富了论文内容。特别是在使用了注意力模块的网络中,热力图就可以验证注意力机制是否真正聚焦到了预期的重要特征上,以便对模型的有效性和合理性进行评估。例如这篇文章中展示的,就很能够表达作者改进后的模型相比之前模型的优越性。

Limiiiing的博客 1706

基于LED可见光通信的物联网系统设计_344

随着物联网技术的不断发展,传统无线通信在工业环境中面临电磁干扰强、通信质量不稳定等问题。为此,本文设计了一种基于LED可见光通信的物联网系统,实现工厂车间内设备状态的稳定、高效、低干扰数据传输。系统主要由设备节点、设备主机、华为云物联网服务器以及可视化上位机构成。 设备节点采集机器的出货量、运行状态、机身温度等关键信息,通过调制后的LED可见光信号发送至设备主机。主机利用红外接收器接收光信号后进行解调处理,并通过WIFI模块将数据上传至华为云IOT服务器。

344

hdu 3836 Equivalent Sets

题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=3836 Equivalent Sets Description To prove two sets A and B are equivalent, we can first prove A is a subset of B, and then prove B is a subset...

dong12276的博客 135

Apollo 9.0 速度非线性规划算法 – piecewise jerk speed nonlinear optimizer Ⅰ

二次规划的速度规划算法(PiecewiseJerkSpeedOptimizer)的存在两个问题: 这里以一张图来说明上面的问题,假设存在一个实际限速区间(或曲率很大需要降速的区间)[S1, S2],PiecewiseJerkSpeedOptimizer的做法是根据动态规划的st曲线(黑色),找到具体的时间区间[T1, T2],然后对区间[T1, T2]内所有的点施加约束或惩罚。但是二次规划平滑后的曲线(黄色)发生了变化,那么限速区间[S1, S2]对应的时间区间[T1, T2]也发生了变化,所以实际应该是对

WaiNgai 332

hdu 3836 Equivalent Sets //tarjan+缩点

题目链接 题意:给n个点和m条有向边,问最少再加几条边使其变成强连通图。和hdu2767同样的解法。 #include #include #include #include #define N 22000 #define M 55000 using namespace std; struct node { int next,to; }e[M]; int head[N],cnt,

弱菜zc 559

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

hdu 3836 Equivalent Sets(tarjan+缩点)

Problem Description To prove two sets A and B are equivalent, we can first prove A is a subset of B, and then prove B is a subset of A, so finally we got that these two sets are equivalent. ...

dielucuan8830的博客 139

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

HDU3836 Equivalent Sets :Tarjan缩点

HDU3836 Equivalent Sets :Tarjan缩点

YJSheep 2134

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

HDU3836 Equivalent Sets——强连通分量(tarjan缩点)

点这里 题意: 给定一个有向图,求至少加多少条边能让整个图成为强连通图。 题解: 用tarjan将图划分称若干个强连通分量,统计每个分量的入度与出度,然后求入度为零的分量个数和出度为零的分量个数,取其中较大值为答案。 过程中犯的错: 如果本身就是强连通图: 一开始没考虑到这个情况,提交WA了之后还一直以为哪里写错,其实是没考虑完整。if(cnt == 1){ printf("0\n"); return;} #include<bits/stdc++.h> using name...

lllllan 226

HDU3836 Equivalent Sets (Tarjan缩点+贪心)

题意: 给你一张有向图,问你最少加多少条边这张图强连通 思路: 缩点之后,如果不为1个点,答案为出度为0与入度为0的点的数量的最大值 代码: #include<iostream> #include<cstdio> #include<algorithm> #include<cmath> #include<cstring&gt...

weixin_30421809的博客 135

hdu3836 Equivalent Sets(有向图至少添加多少条边才能变为强连通图+tarjan缩点)

题目链接:点击打开链接 题意描述:对于给定的有向图,至少要添加多少条边,才能使之成为强连通图 解题思路:tarjan缩点+DAG性质 1、DAG性质:对于一个有向无环图,若想让它成为强连通图,至少需要添加max(a,b) a为入度为0的边点的数量,b为出度为0的点的数量 2、通过tarjan缩点将普通的有向图转换为有向无环图,注意当图本身就是强连通时(如只有1个点)时不需要添加边

Crazy_Bear 2228

HDU-3836 Equivalent Sets(Tarjan+强连通缩点)

题意 给定一个 nnn 个节点的有向图,求最少加几条边,可以使得整个图强连通。 1≤n≤200001≤n≤200001 \leq n \leq 20000 1≤m≤500001≤m≤500001 \leq m \leq 50000 思路 不难发现出入度和强连通间有一个可否的关系,当一个有向图如果把边都变成双向时是强连通图且图中的每个点入度出度均不为零时,这张有向图图强连通。特别的,只有一...

Paulliant的博客 257

HDU 3836 Equivalent Sets

Equivalent Sets Time Limit: 12000/4000 MS (Java/Others)Memory Limit: 104857/104857 K (Java/Others)Total Submission(s): 4819Accepted Submission(s): 1733 Problem Description To prove two...

HJ921004的博客 152

[tarjan] hdu 3836 Equivalent Sets

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3836 Equivalent Sets Time Limit: 12000/4000 MS (Java/Others)    Memory Limit: 104857/104857 K (Java/Others) Total Submission(s): 2890    Accep

cc_again的专栏 1341

HDU 3836 Equivalent Sets(tarjan + 压缩强连通)

大体题意: 告诉你如果证明A等于B,要证明A是B的子集,并且B是A的子集。 现在给你n 个集合,告诉m 个集合的关系,求在加多少个关系使得这N个集合相等? 思路: A是B的子集, 用 A到B有一条有向边来代替,那么这个问题就转换为了  在加多少边使得这个图强连通! 可以用tarjan算法求出所有的强连通分量,把每一个强连通分量压缩成一个点,这个点内部肯定是强连通,那么就是加边使得这些点强

aozil_yang的博客 545

Equivalent Sets HDU - 3836(tarjan缩点)

题意   一张有向图,需要至少连多少条边使得这个图强联通 思路   缩点成一张拓扑图,问题就转化成,至少需要加几条边使得这个拓扑图变成一张强联通图。设p为拓扑图入度为0的点的个数,q为出度为0的点的个数,需要加的边数就是max(p,q)。证明略(我不会)。 #include<iostream> #include<cstring> #include<algorithm&...

qq_43560101的博客 170
上一篇: hdu 4314 Save the dwarfs(dp,4级,多校)
下一篇: hdu 3622 Bomb Game(2-sat,二分,4级)
剑不飞
博客等级 码龄15年 86粉丝 505原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值