poj2186Popular Cows

有向图的汇点 -- 兼 ACM PKU POJ 2186 ( Popular Cows ) 解题报告 题目链接:http://poj.org/problem?id=2186题意:奶牛的梦想是成为牛群中最受欢迎的奶牛,即受其它所有牛的欢迎。“欢迎”是具有传递性,即如果牛A认为牛B受欢迎,牛B觉得牛C受欢迎,则牛A也隐含地认为牛C受欢迎。现在,给一组点对 (A,B) 表示 A 认为 B 受欢迎,找出有多少最受欢迎的奶牛。这是一个有向图上的问题。用图上的顶点表示奶牛,有向边 (A,B) 表示 A 变为 B 受欢迎,则最受欢迎的牛是那些能被其它顶点所到达的顶点。最暴力的解法是,对每一个顶点,判断是否能够为其它所有的 阅读详情
#include <map>
#include <set>
#include <cmath>
#include <queue>
#include <stack>
#include <cstdio>
#include <string>
#include <vector>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
typedef long long ll;
const int MAXE = 22220, MAXV = 11110;
struct Arc
{
    int dest;
    Arc *next;
    inline Arc() {}
    inline Arc(const int &_dest, Arc *_next):dest(_dest), next(_next) {}
}Npool[MAXE], *Nptr = Npool, *adj[MAXV];
vector<int> com[MAXV];//存强连通分量的容器
int n, m, dfn[MAXV], low[MAXV], belong[MAXV], index, cnt;
//n顶点数,m边数,index为时间戳,cnt为强连通分量个数
//dfn用来保存时间戳(次序)编号,low保存顶点i或i的子树最早的次序编号
//belong用来缩点的数组,值相等的对应下标在同一个强连通分量内
bool instack[MAXV];
stack<int> s;
inline void addEdge(const int &start, const int &finish)
{
    adj[start] = new(Nptr++)Arc(finish, adj[start]);
}

inline void tarjan(const int &i)
{
    dfn[i] = low[i] = ++index;
    instack[i] = true;
    s.push(i);
    for (Arc *p = adj[i]; p; p = p->next)
    {
        if (!dfn[p->dest])
        {
            tarjan(p->dest);
            if (low[i] > low[p->dest])
                low[i] = low[p->dest];
        }
        else if (instack[p->dest])
            if (low[i] > dfn[p->dest])
                low[i] = dfn[p->dest];
    }
    if (dfn[i] == low[i])
    {
        //com[++cnt].clear();
		cnt++;//
        int j;
        do//缩点
        {
            j = s.top();
            s.pop();
            instack[j] = false;
            com[cnt].push_back(j);
            belong[j] = cnt;
        }while (j != i);
    }
}
int main()
{
    scanf("%d", &n);
        memset(adj, 0, sizeof(adj));
        memset(instack, false, sizeof(instack));
        memset(dfn, 0, sizeof(dfn));
        index = 0, Nptr = Npool, cnt = 0;
        for (int i = 0; i <= n; i++)
            com[i].clear();
        while (!s.empty())
            s.pop();
        for (int i = 1; i <= n; i++)
        {
            int s, t;
            while(scanf("%d", &s),s)
            addEdge(i, s);
        }
        for (int i = 1; i <= n; i++)
            if (!dfn[i])
                tarjan(i);
        bool in[MAXV]={0},out[MAXV]={0};////
        int In=0,Out=0;
        for(int i=1;i<=n;i++){
            for (Arc *p = adj[i]; p; p = p->next)
            if(belong[i]!=belong[p->dest]){
                in[belong[p->dest]]=true;//不合要求,要的只是出入度为零的,其余不管
                out[belong[i]]=true;
            }
        }
        for(int i=1;i<=cnt;i++){
            if(!in[i])In++;
            if(!out[i])Out++;
        }
        cout<<In<<endl<<((cnt==1)?0:max(In,Out))<<endl;//为何min
    return 0;
}

使用Simulink进行基于IIR滤波器的设计与稳定性分析仿真 IIR滤波器的稳定性与其系统函数的极点位置密切相关。如果所有极点都位于Z平面的单位圆内,则该滤波器是稳定的;否则,滤波器将是不稳定的。在设计IIR滤波器时,确保其稳定性对于避免输出信号发散至关重要。明确你的系统需求,比如输入信号类型(如正弦波)、采样率、IIR滤波器的设计参数(如滤波器类型、阶数、截止频率等)。假设我们需要设计一个低通IIR滤波器,用来去除高于500Hz的所有频率成分,保留低于500Hz的信号成分。采样率为8kHz。 阅读详情

相关推荐

CircuitBreaker Resilience4J 介绍

在分布式环境中,我们的应用可能会面临着各种各样的可恢复的异常(比如超时,网络环境异常),此时我们可以利用不断重试的方式来从异常中恢复(Retry Pattern),使整个集群正常运行。然而,也有一些异常比较顽固,突然发生,无法预测,而且很难恢复,并且还会导致级联失败(举个例子,假设一个服务集群的负载非常高,如果这时候集群的一部分挂掉了,还占了很大一部分资源,整个集群都有可能遭殃)。如果我们这时还是不断进行重试的话,结果大多都是失败的。

zzhongcy的专栏 3539

poj2186 Popular cows

Popular cows 题目背景: poj2186 分析:题目本身简单,从每头牛向他们所喜欢的牛连边,考虑这么一个问题,所有的满足题目受欢迎的条件,则这些牛都在同一个强连通分量中,并且,这个SCC一定是出度为0的,所以我们要求的就是那个SCC中的点的个数即可,但是注意,可能出现获得的图并不联通的情况,这个时候答案直接为NO,因为不可能有符合题目的牛。 Source: {优快云:CO

scarlyw的博客 332

告别CANoe?手把手教你用Python+PCAN搭建汽车诊断脚本(附完整代码)

本文详细介绍了如何利用Python和PCAN硬件搭建高性价比的汽车诊断自动化方案,替代昂贵的CANoe工具。通过开源库python-can和udsoncan实现UDS诊断协议,涵盖硬件选择、环境配置、核心功能实现及性能优化,附完整代码示例,助力开发者快速构建诊断脚本。

weixin_42551227的博客 373

【强连通】POJ 2186 Popular cows

POJ 2186 Popular cows 【传送门】 Time Limit:2000MS Memory Limit:65536K Total Submissions:43139 Accepted:17547 Description Every cow's dream is to become the most popular cow in th...

lesileqin的博客 232

一文吃透 BMS:动力电池与储能共用的电池管控全架构详解

BMS作为电池系统的核心控制器,其技术深度和系统复杂性不容小觑。动力电池与储能系统虽然应用场景不同,但在核心架构上共享大量基础技术。成功的BMS设计需要在精度、可靠性、成本、功耗之间找到最佳平衡点。未来,随着电池技术的进步和智能化需求的提升,BMS将向着更高集成度、更强智能化、更优经济性的方向发展。无论是汽车工程师还是储能系统设计师,深入理解BMS的全栈架构,掌握其核心技术原理,都将是应对未来能源存储挑战的关键能力。核心要点回顾BMS采用分层分布式架构,硬件是基础,算法是灵魂。

小帽子的博客 337

RLC电阻电容电感基础知识——电感篇

电感 等效电路 电感线圈由铜导线绕制,等效电路如图所示。 寄生电阻RS,包括了绕线电阻、引脚串联电阻以及磁芯损耗电阻三部分组成,其中绕线电阻与线径、长度、铜线电阻率有关;引脚电阻与引线长短、粗细有关;磁芯损耗电阻与磁芯材料特性有关,显然磁芯损耗电阻还与工作频率有关.寄生电容C主要是绕线圈与圈之间的杂散电容(为PF级),与绕线工艺有关。 等效导纳 显然: (1)当角频率ω(频率f)较小时,呈电感性. (2)当角频率ω等于ω0时,导纳Y虚部为0,呈现电阻性,即发生共振。令导纳Y虚部为0,即可求出共振角频率ω

azj2019的博客 1万+

POJ 2186 Popular Cows Kosaraju求强联通分量

POJ 2186 Popular Cows 强联通分量 题目链接: POJ 2186 Popular Cows  题意:给定N个顶点M条边的有向图。边具有传递性。如A到B连通,B到C连通,那么A到C也是连通的。求有多少个顶点满足其他所有顶点到该顶点都连通。 思路:先求出强联通分量,缩点,强连通分量内所有的点都是相互连通的,然后所有的缩点构成一个DAG(有向无环图),如果图中要存在顶点满足

Fighting! 918

从‘最速控制’到代码:深入拆解韩京清ADRC中TD跟踪器的fhan函数(含Matlab/Simulink实例)

本文深入解析韩京清ADRC中的fhan函数,从理论到代码实现,详细拆解其在Matlab/Simulink中的应用。通过分析最速控制问题和非线性TD的连续形式,揭示fhan函数在信号处理和噪声抑制中的独特优势,并提供工程实践中的参数整定和优化技巧。

weixin_42659194的博客 246

POJ 2186 Popular Cows

POJ 2186 Popular Cows题意:有n头牛,m个关系,每个关系A,B表示A牛认为B牛很受欢迎。若A牛认为B牛很受欢迎,B牛认为C牛很受欢迎,则A牛也认为C牛很受欢迎。让你输出有几头牛被所有其他的牛认为很受欢迎。思路:先找出所有的强连通分量,若出度为0的点只有一个,求这个点里包含的所有点的个数。若出度为0的点不止一个,则没有最受欢迎的牛,输出0。题解:#include<iostream>

Loi_feather的博客 408

Android开发实战:5分钟搞定全屏沉浸式状态栏(附完整代码示例)

本文提供了Android开发中实现全屏沉浸式状态栏的完整实战指南。通过对比主题配置、动态代码设置和Window标志位三种方法,详细讲解了如何隐藏状态栏并处理布局适配。文章还涵盖了刘海屏、手势导航等高级适配场景,并附有可直接使用的工具类代码,帮助开发者快速提升应用视觉体验。

weixin_29197699的博客 357

华为od机试|华为od机试真题2025|华为od题库|华为od机考|2025C卷B卷

华为od机试|华为od机试真题2025|华为od题库|华为od机考|华为od机试|华为od机试真题2025|华为od题库|华为od机考|华为od机试|华为od机试真题2025|华为od题库|华为od机考|华为od机试|华为od机试真题2025|华为od题库|华为od机考|B卷C卷

u014481728的博客 10万+

POJ 2186 Popular Cows(强联通分量)

题意: 给出n头牛,m个关系,关系x,y表示牛x喜欢牛y,如果x喜欢y,y喜欢z,那么x也喜欢z。 是否存在一些牛,其他所有牛都喜欢他。 明显,如果是一个大的联通分量,那么他们相互喜欢,如果有几个联通分量,那么如果有两个或两个以上的联通分量没有指向其他联通分量,那么这样的牛是不存在的,如图: 所以我们出了计算联通分量,还要存放,某个联通分量有多少个牛组成,以及这个联通分量有没有出度,如果这样的牛存在,那么它所在的联通分量必然出度为0,并且只有1个出度为0的联通分量。 //POJ_2186_Popul..

weixin_45691686的博客 299

【反卷积算法】Richardson-Lucy (RL) :通过不断迭代更新图像估计值

Richardson-Lucy(RL)反卷积算法:是一种基于最大似然估计(Maximum Likelihood Estimation, MLE)的图像去卷积方法,常用于去模糊和图像增强。通过不断地更新图像估计值,来最小化模糊图像和恢复图像之间的误差,逐步消除模糊,最终接近真实的原始图像,每次迭代都会根据当前估计的图像来修正下次迭代的结果。

📷 图像处理践行者 | 传统算法 · 深度学习 · 多模态 | 分享实战经验与技术洞见,探索从像素到智能的无限可能。 3035

POJ 2186 Popular Cows (强连通分量)

POJ 2186 Popular Cows  链接:http://poj.org/problem?id=2186 题意:每头奶牛都梦想着成为牧群中最受奶牛仰慕的奶牛。在牧群中,有N 头奶牛,1≤N≤10,000,给定M 对(1≤M≤50,000)有序对(A, B),表示A 仰慕B。由于仰慕关系具有传递性,也就是说,如果A 仰慕B,B 仰慕C,则A 也仰慕C,即使在给定的M 对关系中并没

SIOFive的专栏 934

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Camera2Demo

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

poj 2186 Popular Cows (强连通分量 tarjan)

poj 2186 Popular Cows 强连通分量 tarjan http://poj.org/problem?id=2186   #include #include "stdio.h" #include "string.h" using namespace

411

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

POJ 2186 —— Popular Cows

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

0x3f3f3f3f 393

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

poj2186 Popular Cows

Popular Cows Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 31782   Accepted: 12909 Description Every cow's dream is to become the most popular cow in the

樱花满地集于我心,楪舞纷飞祈愿相随 381

POJ 2186 Popular Cows Tarjan+缩点

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

LMengi000的博客 272

POJ 2186 Popular Cows(强连通)

POJ 2186 Popular Cows 题目链接 题意:一个奶牛,之间有互相仰慕的关系,如果A仰慕B,B仰慕C,意味着A也仰慕C,问有多少奶牛被所有奶牛仰慕 思路:强连通缩点,点权为连通集合个数,如果出度为0的点个数大于1个,答案就是0,如果等于1个,答案就是那个点的权值 代码: #include #include #include #include #i

Remilia's 905

POJ 2186 Popular Cows 强连通图

滴,集训第二十七天打卡。 近日居然没有新的题目训练了呢... 有点无趣,只能翻之前的题目补补了..   POJ 2186 Popular Cows   Every cow's dream is to become the most popular cow in the herd. In a herd of N (1 &lt;= N &lt;= 10,000) cows, you are...

请赐教 519

[POJ 2186]Popular Cows

题目链接:http://poj.org/problem?id=2186 题面 题意 有NNN只牛,有MMM条关系,每条关系(Ai_ii​,Bi_ii​)描述了Ai_ii​牛认为Bi_ii​牛受欢迎。这个关系是可传递的,即若A牛认为B牛受欢迎,B牛认为C牛受欢迎那么A牛也认为C牛受欢迎别问我为什么可传递,问就是题目需要。求所有牛都认为受欢迎的牛的数量。 思路 如果把(Ai_ii​,Bi_ii​)看成...

asdkjc的博客 126

tarjan算法 求解强联通分量 POJ_2186_Popular Cows

算法介绍 如果两个顶点可以相互通达,则称两个顶点强连通(strongly connected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。非强连通图有向图的极大强连通子图,称为强连通分量(strongly connected components)。 下图中,子图{1,2,3,4}为一个强连通分量,因为顶点1,2,3,4两两可达。{5},{6}也分别是两个强

持之以恒_fighting 1337

POJ 2186 POPULAR COWS

Link:http://poj.org/problem?id=2186 注意题中 是considered popular by every other cow 意思是除了他自己其他牛都喜欢他的 我一开始理解为 the most popular =-= 利用tarjan算出强连通分支 缩点 得出出度为0的个数num(num一定不会等于0的) 如果num为1 则为该强连通图的牛...

121

poj 2186 Popular Cows

Popular Cows Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 29908   Accepted: 12131 Description Every cow's dream is to become the most popular cow in the her

keshuqi的博客 261

POJ2186 Popular Cows

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 ...

dgoh41514的博客 229
上一篇: poj3352Road Construction 边双连通+伪缩点
下一篇: uva10004 Bicoloring 二分图染色
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值