poj2186 tarjan缩点

Java混合加密实战:RSA签名与AES加密原理与实现详解 在网络安全与数据保护领域,加密技术是确保信息机密性、完整性和身份认证的核心手段。对称加密算法如AES以其高效性著称,适合加密大量数据,但面临密钥安全分发的挑战;非对称加密算法如RSA则通过公钥私钥机制解决了密钥交换问题,同时提供数字签名功能以实现身份验证和数据防篡改。混合加密技术结合了二者的优势,先用AES加密业务数据,再用RSA加密AES密钥,形成高效且安全的通信方案。这种模式在Java企业级开发中广泛应用,适用于支付网关、安全文件传输等需要处理敏感数据的场景。本文通过**Java实现**和**AES-G 阅读详情

题目链接poj2186
题意:n个奶牛,m个条边,每条边a指向b,代表a奶牛认为b奶牛是受欢迎的,如果b奶牛认为c奶牛是受欢迎的,那么a奶牛认为c奶牛是受欢迎的。现在要你求受其他所有奶牛欢迎的奶牛个数。

题解,把每一个连通块缩成一个点,然后记录每个连通块的出度点,设出度点个数为cnt1,
cnt1=0,ans=n;
cnt=1,ans=出度为0的那个联通块的大小。
cnt1>1,ans=0;

#include<iostream>
#include<algorithm>
#include<cstring>
#include<string>
#include<cstdio>
using namespace std;
typedef long long ll;
const int inf=2e9;
const int MAXN=10005;
int val[MAXN],du[MAXN],dfn[MAXN];
struct node{
    int to,Next;
}edge[50005];
int tot;
int timeclock,top,cnt,r;
int low[MAXN],stack[MAXN],instack[MAXN],head[MAXN];
int belong[MAXN],sum[MAXN],size[MAXN];
void add(int u,int v)
{
    edge[tot].to=v;
    edge[tot].Next=head[u];
    head[u]=tot++;
}
void tarjan(int a)           //标准的tarjan代码
{
    dfn[a]=low[a]=++timeclock;
    instack[a]=1;
    stack[++top]=a;
    for(int i=head[a];i;i=edge[i].Next)
    {
        int v=edge[i].to;
        if(!dfn[v])
        {
            tarjan(v);
            low[a]=min(low[a],low[v]);
        }
        else
        if(instack[v])
        low[a]=min(low[a],dfn[v]);
    }
    if(dfn[a]==low[a])
    {
        cnt++;
        while(stack[top+1]!=a)
        {
            belong[stack[top]]=cnt;
            instack[stack[top]]=0;
            size[cnt]++;
            sum[cnt]=min(sum[cnt],val[stack[top]]);
            top--;
        }
    }
}
int main()
{
    int n,m,u,v;
    tot=1;
    cin>>n>>m;
    for(int i=1;i<=n;i++)
        val[i]=inf,du[i]=0,sum[i]=inf;
    for(int i=1;i<=m;i++)
    {
        cin>>u>>v;
        add(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=edge[j].Next)
    if(belong[i]!=belong[edge[j].to])
    {
        du[belong[i]]++;   //记录出度
    }
    int ans=0,cnt1=0;
    for(int i=1;i<=cnt;i++)
    {
       if(!du[i])
       {
          cnt1++;
          ans+=size[i];
       }
    }
    if(cnt1==0)ans=n;
    else if(cnt1>1)ans=0;
    printf("%d\n",ans);

    return 0;
}

POJ2186-Popular Cows【Tarjan+极大强连通分量+缩点】 POJ2186-Popular Cows 【Tarjan+极大强连通分量+缩点】 解题报告+AC代码 http://hi.youkuaiyun.com/!s/BGDH68 附:我所有的POJ解题报告链接 . http://blog.youkuaiyun.com/lyy289065406/article/details/6642573 立即下载

相关推荐

POJ3733-Changing Digits【DFS+强剪枝】

北大POJ3733-Changing Digits【DFS+强剪枝】 解题报告+AC代码

poj2186(强连通分量)

思路:找出出度为0 的顶点,如果出度为0的顶点大于1,则解为零,否则解就是出度为零的顶点的连通分支数。 刚开始是没有理解这道题的,也是看了大神之后才理解的。 #include<iostream> #include<algorithm> #include<cmath> #include<cstring> #include<cstdio> #include<vector> #include<stack> using namesp

Keep_Trying_Go的博客 600

瑞芯微RK3588开发板VSCode远程开发全攻略:从SSH配置到插件优化

本文详细介绍了如何在瑞芯微RK3588开发板上配置VSCode远程开发环境。从Ubuntu系统下的SSH服务设置、VSCode Remote-SSH扩展安装,到连接建立、基础工具链部署,再到针对ARM平台的性能优化与调试配置,提供了一套完整的实战指南,帮助开发者高效利用本地资源进行嵌入式开发。

weixin_28831341的博客 622

poj2186(强连通分量分解)

题目大概意思为有 N 头牛,有些牛认为有些牛是红人,该关系具有传递性,例如果牛A觉得牛B是红人,牛B认为牛C是红人,则牛A也会认为牛C是红人,求被其他所有牛认为是红人的牛的总数 假设被其他所有牛认为是红人的牛的点集为 S ,由于被是被其他所有牛觉得是红人,因此最后点集内的牛,都互相认为是红人,所以为强连通分量 我们将原图强连通分量分解后,只有最接近图的末尾的强连通分量有可能是题目结果,因此我们取强连通分量中编号最后的强连通分量 点集S(即图最末尾的)进行判断 取 点集S 中任意一点(该点集内互通,所以取哪一

gronkie的博客 307

PostgreSQL+Citus分布式集群实战:从零搭建到性能调优

本文详细介绍了如何从零开始搭建并优化PostgreSQL+Citus分布式数据库集群。内容涵盖集群规划、源码编译安装、Citus扩展部署、节点配置、分布式表创建以及核心性能调优策略,为应对海量数据增长提供了完整的部署指南和实战解决方案。

oo7890的博客 627

从Blender舞步到夜空画卷:基于Pix飞控的无人机编队灯光秀全链路开发实践

本文详细介绍了基于Pixhawk飞控的无人机编队灯光秀全链路开发实践。从Blender三维动画设计、QGroundControl地面站二次开发与MAVLink通信桥接,到PX4飞控的OFFBOARD模式路径控制与LED灯光驱动实现,最后通过Gazebo仿真验证并完成真机组装与首飞。文章为无人机爱好者提供了一套完整的、从创意设计到夜空执行的开源解决方案,重点阐述了多机同步与灯光控制的核心技术挑战与应对策略。

zeta9的博客 585

POJ 2186 —— Popular Cows

原题:http://poj.org/problem?id=2186 题意:问有多少个点满足条件 —— 其他所有的点都可以到达它; 思路:先求强连通分量,然后反向构建DAG图,新图中的点权就是每个强连通分量所包含的点的个数(因为强连通分量中任意两点均可达);如果新图中入度 = 0 的点超过一个就输出 0 ,否则就输出该点的点权; Q:为什么要反向建图? A:反向建图就将问题转化成了从该

0x3f3f3f3f 393

【3D Slicer】的小白入门使用指南一

3D Slicer 是一个免费的开源软件平台,用于医学、生物医学和其他 3D 图像的可视化、处理、分割、配准和分析。Slicer 的功能包括:读/写。

图挖掘领域,新晋砖家 ☞ 未来可期,欢迎和静静一起学习交流吖 5556

POJ2186-Popular Cows

全解题报告索引目录 -> 【北大ACM – POJ试题分类】 转载请注明出处:http://exp-blog.com ------------------------------------------------------------------------- 大致题意: 有N只奶牛,其中奶牛A认为奶牛B备受注目,而奶牛B也可能认为奶牛C备受注目。奶牛们的这种“认为”...

ζёСяêτ - 小優YoU 6943

Codex入门01-环境安装(小白入门:手把手教你安装配置,国内网络也能搞定)

本文手把手教你从零搭建 Codex CLI 开发环境。内容涵盖 Node.js 安装(macOS/Windows/Linux)、Codex CLI 全局安装、ChatGPT 账号登录认证,以及国内网络代理配置。还包括常见问题排查和一键启动脚本编写。跟着截图一步步操作,10分钟搞定全部环境,开始用AI写代码!

yueyeguzhuo的专栏 345

SEGGER Embedded Studio初体验

先楫HPM5E00EVK开发环境搭建

hywing's blog 1109

POJ 2186 Popular Cows Tarjan+缩点

POJ 2186 Popular Cows Tarjan+缩点 题意:给定一个有向图,求有多少个顶点是任意顶点出发都可达的。 定理:有向无环图中唯一出度为0的点,一定可以由任何点出发均可达(由于无环所以从任何点出发往前走,必然终止于一个出度为0的点。) 思路: 1.求出所有的强连通分量(用tarjan()算法) 2.每个强连通分量缩成一点,则形成一个有向无环图DAG。 3.DAG...

LMengi000的博客 273

AI智能体面试实战与真题解析: 312+道面试题完整答案 (下篇)

本文覆盖220道基础八股文+92道项目面试题,涵盖Agent架构、RAG、工具调用、记忆系统、多智能体、大模型基础、工程化实践、Prompt工程9大模块,含完整代码实现和模拟面试剧本。

program哲学 302

【连通性,度数,拓扑】【tarjan缩点求出度为零的点的个数】POJ2186 Popular Cows

【题目】http://poj.org/problem?id=2186 【题意】一个牛认为另一个牛很强,并且a认为b强,b认为c强,a也会认为c强。问有多少个牛被所有人认为很强 【思路】tarjan模板。另外要注意缩点之后,如果不只有1个出度为0的点的话,就会没有最强的牛。 【参考】https://blog.youkuaiyun.com/u010885899/article/details/4725470...

swqeaaa的博客 247

自动驾驶模拟器:基于 Python + Carla,在家也能训练一个“L4 级”自动驾驶 AI 模型

市面上有很多模拟器(AirSim, LGSVL),但 Carla 是目前学术界和工业界最主流的选择。画质强:基于 UE4,光影、天气(下雨、夕阳)极其逼真,这对训练视觉模型至关重要。API 爽:完全使用 Python 控制,对 AI 工程师极度友好。资产多:内置各种车辆、行人、交通信号灯、城市地图。编写 Python 代码,让车自己在城市里跑,通过摄像头看到路况,自己决定怎么打方向盘。通过 Carla,我们把价值数百万的自动驾驶测试场搬进了电脑。

BUG猿的博客 269

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

poj 2186

poj 2186tarjan缩点板子题缩完点之后是有向无环图,要想其他点都能到达,那么它的出度为0,不然随意连就会出现环,如果出度为0的点的个数不是1,肯定就凉了。 1 #include<iostream> 2 #include<cstdio> 3 #include<queue> 4 #include<algori...

weixin_30664051的博客 71

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

POJ-2186 Tarjan+缩点

Every cow’s dream is to become the most popular cow in the herd. In a herd of N (1 <= N <= 10,000) cows, you are given up to M (1 <= M <= 50,000) ordered pairs of the form (A, B) that tell...

李兆龙的博客 436

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

POJ 2186 Popular Cows 【Tarjan+缩点】

题意:给你n头牛,m个关系,每个关系表示a崇拜b,问有多少牛被所有牛所崇拜。崇拜具有传递性。 还是先Tarjan缩点,找出出度为0的点,此点为缩点后的点,并判断数量,如果数量为1,则存在,否则不存在。 那个点在缩点前的数量即为被所有牛崇拜的数量。 为加强理解,给上几组数据。

AC_Dreameng 678

tarjan缩点应用 Popular Cows POJ - 2186

简单应用,这个问题因为数据挺大的所有暴力求肯定不行,缩点就是把一部分点变成一个,这部分点是一样的,这个就是把这个图中那些强连通点变成一个,因为一个强连通分量一点过互相崇拜,所有可以把他们缩点。然后就是缩点之后如果一个点还去崇拜其他点那么它一定不会被它崇拜的点崇拜(否则就会缩成一个点),那么就是求那个没有去崇拜别人的点。如果就有一个的话,那么就是这个大点里面小点的个数,如果有两个及以上就说明有两个点...

天道酬勤 186

POJ 2186 tarjan 缩点

/** 链接:http://poj.org/problem?id=2186 缩点 tarjan求联通分量; 题意:n头牛,m个崇拜关系,并且崇拜具有传递性,a崇拜b ,b崇拜c --&gt; a崇拜c,问最后有几头牛被崇拜; 有向图 显然在一个强连通分量内的所有点都是满足条件的,对整张图进行缩点后,将原图变为有向无环图(DAG) 对于缩点后的图来说,必然存在一个及一个以上的点的出度为0,必然不存...

布呗之路 271

[BZOJ 1051][POJ 2186] 受欢迎的牛/Popular Cows Tarjan缩点+判断出度

题目传送门:【BZOJ 1051】 【POJ 2186】 (两道题是一样的) 题目大意:每一头牛的愿望就是变成一头最受欢迎的牛。现在有 N 头牛,给你 M 对整数 ( A , B ),表示牛 A 认为牛 B 受欢迎。 这 种关系是具有传递性的,如果 A 认为 B 受欢迎,B 认为 C 受欢迎,那么牛 A 也认为牛 C 受欢迎。你的任务是求出有多少头 牛被所有的牛认为是受欢迎的。(0 ≤ N

江澤妮可 538

POJ 2186 Tarjan 缩点 解题报告

Popular CowsDescriptionEvery cow’s dream is to become the most popular cow in the herd. In a herd of N (1 <= N <= 10,000) cows, you are given up to M (1 <= M <= 50,000) ordered pairs of the form (A, B)

onepointo 352

POJ 2186(Tarjan缩点)

题目大意:给一个有向图,求有多少个点,除自身外的所有点都可以到达。 思路:反向建边然后n次bfs Tarjan缩点,得到一颗树,在树上建边(块与块之间),找到没有出度的块,如果有多个,则不可能有满足条件的点,答案为0,有一个这样的块时,里面的顶点数即为答案(所有其他块里的点都可以到这个块,这个块内的又是强连通的,所有点都可以到这个块里的任意点) 代码: #include &lt;cstdio&gt...

weixin_30149299的博客 187

【POJ 2186】 Popular Cows Tarjan 缩点 详解

Description Every cow’s dream is to become the most popular cow in the herd. In a herd of N (1 <= N <= 10,000) cows, you are given up to M (1 <= M <= 50,000) ordered pairs of the form (A, B) that tell you that cow A thinks that cow B is popular

待到山花烂漫时 275

poj2186--tarjan+缩点

题目大意: 每一头牛的愿望就是变成一头最受欢迎的牛。现在有N头牛,给你M对整数(A,B),表示牛A认为牛B受欢迎。 这 种关系是具有传递性的,如果A认为B受欢迎,B认为C受欢迎,那么牛A也认为牛C受欢迎。你的任务是求出有多少头 牛被所有的牛认为是受欢迎的。 先用tarjan求出每个强连通分量,再缩点,统计每个点的出度,如果有且只有1个出度为0的点,就...

133

poj 2186 (tarjan 缩点)

题意:给出一个有向图,找到能被所有的点都能达到的点的个数。 思路: 首先他们都在一个联通块中。然后找出度为0的那个联通块,就是答案。 //#include #include #include #include #include using namespace std; typedef long long ll; typedef unsigned long long ull; typ

Everything can be done! 355
上一篇: hdu 6604 Blow up the city 支配树
下一篇: POJ - 1236 tarjan缩点
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值