【ybtoj】【强连通分块】【Tarjan】【例题2】受欢迎的牛

【例题2】受欢迎的牛


Link

传送门
题目


解题思路

先Tarjan,把牛进行捆绑
(在一个强连通分块中,如果一个牛是明星,那么其他的牛也一定是明星)

考虑明星的的条件

  1. 在出度为0的强连通分块中
    (如果这个分块喜欢另一个分块的牛,因为是两个分块,所以另一个分块的牛一定不喜欢这个分块的牛,不然互相喜欢,就是一个强连通分块了)
  2. 出度为0的强连通分块只有一个
    (如果出现两个出度为0的强连通分块,那这两个分块的牛不喜欢对方,那么就没有牛是明星)

Code

#include <iostream>
#include <cstdio>

using namespace std;

struct DT{
   
	int to, next;
}Ta[500000];
int n, m, dye, ans, Tnum, now, top, x, y, s[10100], times[10100];
int Ts[10100], Thead[10100], low[10100], dfn[10100], hep[10100], co[10100];

void Tar
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值