https://www.luogu.org/problemnew/show/2746

Tarjan 缩点

判断入度为0的点的个数与出度为0的点的个数的关系

注意全缩为一个点的情况

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cmath> using namespace std;
const int N = ; #define yxy getchar() int n, now = , Tarjan_tim, Bel_tim, Top;
int head[N], Low[N], Dfn[N], Out[N], In[N], Belong[N], Stack[N];
bool vis[N];
struct Node {int u, v, nxt;} G[N * N * ]; inline int read(){
int x = ; char c = yxy;
while(c < '' || c > '') c = yxy;
while(c >= '' && c <= '') x = x * + c - '', c = yxy;
return x;
} inline void add(int u, int v){
G[now].v = v; G[now].nxt = head[u]; head[u] = now ++;
} void Tarjan(int u){
Dfn[u] = Low[u] = ++ Tarjan_tim;
vis[u] = ; Stack[++ Top] = u;
for(int i = head[u]; ~ i; i = G[i].nxt){
int v = G[i].v;
if(!Dfn[v]){
Tarjan(v);
Low[u] = min(Low[u], Low[v]);
}
else if(vis[v]) Low[u] = min(Low[u], Dfn[v]);
}
if(Dfn[u] == Low[u]){
Bel_tim ++;
Belong[u] = Bel_tim;
vis[u] = ;
while(Stack[Top] != u){
Belong[Stack[Top]] = Bel_tim;
vis[Stack[Top]] = ;
Top --;
} Top --;
}
} void Build_G(){
for(int u = ; u <= n; u ++){
for(int i = head[u]; ~ i; i = G[i].nxt){
int v = G[i].v;
if(Belong[u] != Belong[v]){
Out[Belong[u]] ++; In[Belong[v]] ++;
}
}
}
} int main()
{
n = read();
for(int i = ; i <= n; i ++) head[i] = -;
for(int i = ; i <= n; i ++){
int v = read();
while(v) {
add(i, v);
v = read();
}
}
for(int i = ; i <= n; i ++) if(!Dfn[i]) Tarjan(i);
Build_G();
int Out_js(), In_js();
for(int i = ; i <= Bel_tim; i ++){
if(!Out[i]) Out_js ++;
if(!In[i]) In_js ++;
}
if(Bel_tim == ) cout << "" << "\n" << "";
else cout << In_js << "\n" << max(Out_js, In_js);
return ;
}

[Luogu] 校园网Network of Schools的更多相关文章

  1. 洛谷 P2746 [USACO5.3]校园网Network of Schools (Tarjan,SCC缩点,DAG性质)

    P2746 [USACO5.3]校园网Network of Schools https://www.luogu.org/problem/P2746 题目描述 一些学校连入一个电脑网络.那些学校已订立了 ...

  2. 洛谷 P2746 [USACO5.3]校园网Network of Schools 解题报告

    P2746 [USACO5.3]校园网Network of Schools 题目描述 一些学校连入一个电脑网络.那些学校已订立了协议:每个学校都会给其它的一些学校分发软件(称作"接受学校&q ...

  3. 【洛谷P2746】[USACO5.3]校园网Network of Schools

    校园网Network of Schools 第一问:Tarjan缩点,搞出每一个连通块,入度为零的连通块是需要必须接受新软件副本的,统计数量即可 第二问:要让整个图构成一个环,显然要将入度为零点和出度 ...

  4. P2746 [USACO5.3]校园网Network of Schools(Tarjan)

    P2746 [USACO5.3]校园网Network of Schools 题目描述 一些学校连入一个电脑网络.那些学校已订立了协议:每个学校都会给其它的一些学校分发软件(称作“接受学校”).注意即使 ...

  5. P2746 [USACO5.3]校园网Network of Schools// POJ1236: Network of Schools

    P2746 [USACO5.3]校园网Network of Schools// POJ1236: Network of Schools 题目描述 一些学校连入一个电脑网络.那些学校已订立了协议:每个学 ...

  6. 【luogu P2746 [USACO5.3]校园网Network of Schools】 题解

    题目链接:https://www.luogu.org/problemnew/show/P2812 注意:判断出入度是否为0的时候枚举只需到颜色的数量. 坑点:当只有一个强连通分量时,不需要再添加新边. ...

  7. luogu P2746 [USACO5.3]校园网Network of Schools

    题目描述 一些学校连入一个电脑网络.那些学校已订立了协议:每个学校都会给其它的一些学校分发软件(称作“接受学校”).注意即使 B 在 A 学校的分发列表中, A 也不一定在 B 学校的列表中. 你要写 ...

  8. luogu P2746 [USACO5.3]校园网Network of Schools 题解

    前言: 火星题... 但是我调了半天,最后看了题解才明白. Wtcl 解析: 显然先缩个点. 第一问,就是问多少入度为0的点. 第二问,抽象一下就是要添加一些边,让一个DAG变成一个SCC,求最小边数 ...

  9. COGS——C 908. 校园网 || 洛谷——P 2746 [USACO5.3]校园网Network of Schools

    http://www.cogs.pro/cogs/problem/problem.php?pid=908   ||  https://www.luogu.org/problem/show?pid=27 ...

随机推荐

  1. Scratch第四十九讲:完美的下落和反弹

    做了很多小游戏,都会遇到碰撞和反弹的情况,CC哥大多时候也都是简单处理一下,包括之前的讲座也有提过,但是没有认真的讲解过.今天就专门为这个主题做一讲,把这部分内容彻底讲透,大家可以一起探讨一下. 是不 ...

  2. vuex 理解

    为什么要用vuex?页面由多个视图组成,用户操作会引视图的状态变化. 多个视图依赖于同一状态(例如:菜单导航) 来自不同视图的行为需要变更同一状态(例如:评论弹幕) vuex 的作用 为vue.js开 ...

  3. 应用人员反馈报错,ORA-03137: TTC protocol internal error : [12333]

    一.报错现象 应用人员反馈连接不上数据库,连接报错. 我们使用PLSQL发现可以连接数据库,但是数据库DB Alert存在如下报错信息 DB AlertFri Oct :: Errors ): ORA ...

  4. linux 串口接收

    #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/types. ...

  5. sql语句分页多种方式

    sql语句分页多种方式ROW_NUMBER()OVER sql语句分页多种方式ROW_NUMBER()OVER 2009年12月04日 星期五 14:36 方式一 select top @pageSi ...

  6. css3 transform实现水平和垂直居中

    代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...

  7. 理解 HTTPS 工作原理(公钥、私钥、签名、数字证书、加密、认证)(转)

    本文摘录参考: 细说 CA 和证书(主要讲解 CA 的使用) 数字签名是什么?(简单理解原理) 深入浅出 HTTPS 工作原理(深入理解原理) HTTP 协议由于是明文传送,所以存在三大风险: 1.被 ...

  8. Image Processing and Analysis_8_Edge Detection:Learning to Detect Natural Image Boundaries Using Local Brightness, Color, and Texture Cues ——2004

    此主要讨论图像处理与分析.虽然计算机视觉部分的有些内容比如特 征提取等也可以归结到图像分析中来,但鉴于它们与计算机视觉的紧密联系,以 及它们的出处,没有把它们纳入到图像处理与分析中来.同样,这里面也有 ...

  9. 安装 ALC 解决 centos8 不能播放多媒体的问题

    装完centos8 后,发现看不到视频,听不到音乐,连web在线听音乐也不行.通过安装ALC可以解决. 1.三步安装VLC 这是 centos8 的安装包,曾使用 8 之前的版本安装是不成功的 sud ...

  10. Vs2017 NetCode Mvc EF Mysql 整合2

    1 NetCode EF整合 代码 3  源代码 https://github.com/chxl800/EFMysqlDemo 1.1 项目文件结构 1.2 NuGet  MySql.Data.Ent ...