【洛谷P2746】[USACO5.3]校园网Network of Schools
校园网Network of Schools
第一问:Tarjan缩点,搞出每一个连通块,入度为零的连通块是需要必须接受新软件副本的,统计数量即可
第二问:要让整个图构成一个环,显然要将入度为零点和出度为零点都消灭,ans=max(入度为零点的数量,出度为零点的数量)
- #include<iostream>
- #include<cstring>
- #include<cstdio>
- #define N 110
- int n,Head[N],Enum,stack[N],top,ans1,ans2;
- int dfn[N],cnt,low[N],belong[N],num;
- bool ins[N],in[N],out[N];
- struct NODE{
- int to,next;
- } e[N*N];
- inline void add(int x,int y){
- e[++Enum].to=y;
- e[Enum].next=Head[x];
- Head[x]=Enum;
- }
- inline int read(){
- int x=; char c=getchar();
- while(c<''||c>'') c=getchar();
- while(''<=c&&c<='') { x=(x<<)+(x<<)+c-''; c=getchar(); }
- return x;
- }
- inline void Tarjan(int u){
- dfn[u]=low[u]=++cnt;
- ins[u]=; stack[++top]=u;
- for(int i=Head[u];i;i=e[i].next){
- int v=e[i].to;
- if(!dfn[v]){
- Tarjan(v);
- low[u]=std::min(low[u],low[v]);
- }
- else if(ins[v])
- low[u]=std::min(low[u],dfn[v]);
- }
- if(low[u]==dfn[u]){
- belong[u]=++num;
- while(stack[top]!=u){
- int k=stack[top];
- belong[k]=num;
- ins[k]=;
- top--;
- }
- top--; ins[u]=;
- }
- }
- int main()
- {
- n=read(); int x;
- for(int i=;i<=n;i++){
- x=read();
- while(x){ add(i,x); x=read(); }
- }
- for(int i=;i<=n;i++)
- if(!dfn[i]) Tarjan(i);
- if(num==) { printf("%d\n%d\n",,); return ; }
- for(int i=;i<=n;i++)
- for(int j=Head[i];j;j=e[j].next)
- if(belong[i]!=belong[e[j].to])
- out[belong[i]]=in[belong[e[j].to]]=;
- for(int i=;i<=num;i++){
- if(!in[i]) ans1++;
- if(!out[i]) ans2++;
- }
- ans2=std::max(ans1,ans2);
- printf("%d\n%d\n",ans1,ans2);
- return ;
- }
双倍经验: P2812
【洛谷P2746】[USACO5.3]校园网Network of Schools的更多相关文章
- 洛谷 P2746 [USACO5.3]校园网Network of Schools 解题报告
P2746 [USACO5.3]校园网Network of Schools 题目描述 一些学校连入一个电脑网络.那些学校已订立了协议:每个学校都会给其它的一些学校分发软件(称作"接受学校&q ...
- 洛谷 P2746 [USACO5.3]校园网Network of Schools (Tarjan,SCC缩点,DAG性质)
P2746 [USACO5.3]校园网Network of Schools https://www.luogu.org/problem/P2746 题目描述 一些学校连入一个电脑网络.那些学校已订立了 ...
- 洛谷P2746 [USACO5.3]校园网Network of Schools
题目描述 一些学校连入一个电脑网络.那些学校已订立了协议:每个学校都会给其它的一些学校分发软件(称作“接受学校”).注意即使 B 在 A 学校的分发列表中, A 也不一定在 B 学校的列表中. 你要写 ...
- 洛谷 P2746 [USACO5.3]校园网 Network of Schools 题解
Tarjan 模板题 第一问就是缩点之后看有多少个入度为零的点就好了. 第二问是在缩点后将每个点的入度和出度都求出(只要有入度或出度就置为1),然后比较哪个有值的多,将多的作为答案输出.原因是由题可得 ...
- 洛谷 P2746 [USACO5.3]校园网Network of Schools
题目描述 一些学校连入一个电脑网络.那些学校已订立了协议:每个学校都会给其它的一些学校分发软件(称作“接受学校”).注意即使 B 在 A 学校的分发列表中, A 也不一定在 B 学校的列表中. 你要写 ...
- 洛谷 P2746 [USACO5.3]校园网Network of Schools schlnet Tarjan强连通分量
schlnet ★★★ 输入文件:schlnet.in 输出文件:schlnet.out 简单对比时间限制:1 s 内存限制:128 MB 描述 一些学校连入一个电脑网络.那些学校已订 ...
- P2746 [USACO5.3]校园网Network of Schools// POJ1236: Network of Schools
P2746 [USACO5.3]校园网Network of Schools// POJ1236: Network of Schools 题目描述 一些学校连入一个电脑网络.那些学校已订立了协议:每个学 ...
- P2746 [USACO5.3]校园网Network of Schools(Tarjan)
P2746 [USACO5.3]校园网Network of Schools 题目描述 一些学校连入一个电脑网络.那些学校已订立了协议:每个学校都会给其它的一些学校分发软件(称作“接受学校”).注意即使 ...
- 洛谷P2746 USACO5.1 校园网
题目描述 一些学校连入一个电脑网络.那些学校已订立了协议:每个学校都会给其它的一些学校分发软件(称作“接受学校”).注意即使 B 在 A 学校的分发列表中, A 也不一定在 B 学校的列表中. 你要写 ...
- 【luogu P2746 [USACO5.3]校园网Network of Schools】 题解
题目链接:https://www.luogu.org/problemnew/show/P2812 注意:判断出入度是否为0的时候枚举只需到颜色的数量. 坑点:当只有一个强连通分量时,不需要再添加新边. ...
随机推荐
- (Frontend Newbie)JavaScript基础之常见数据类型
JavaScript中的数据类型分为两种,一种是简单数据类型,包括Undefined.Null.Boolean.Number和String,另一种是复杂数据类型,即Object,也可称作为引用类型. ...
- 【ORACLE】sqlplus使用记录
1.设置输出长度 SEGMENT_NAME--------------------------- BYTES----------TZ01_LOGIN_DATA 20971520 TZ02_EP_GAT ...
- MYSQ系列-MYSQL基础增强(Mysql基本语句)
MYSQL基础增强 库操作 创建一个使用UTF-8字符集的数据库: create database mydb character set UTF8; 创建一个带校对集的数据库 create datab ...
- 白话SpringCloud | 第五章:服务容错保护(Hystrix)
前言 前一章节,我们知道了如何利用RestTemplate+Ribbon和Feign的方式进行服务的调用.在微服务架构中,一个服务可能会调用很多的其他微服务应用,虽然做了多集群部署,但可能还会存在诸如 ...
- bzoj 5329: [Sdoi2018]战略游戏
Description 省选临近,放飞自我的小Q无心刷题,于是怂恿小C和他一起颓废,玩起了一款战略游戏. 这款战略游戏的地图由n个城市以及m条连接这些城市的双向道路构成,并且从任意一个城市出发总能沿着 ...
- 【VMware&Vritualbox】虚拟机安装windows server2016
一.下载镜像 参考链接:https://blog.csdn.net/yenange/article/details/52981769 http://blog.sina.com.cn/s/blog_10 ...
- Bitmap图片查看器
在Android 应用中使用assets目录下存放的资源文件,assets目录下存放的资源代表应用无法直接访问的原生资源,应用程序通过AssetManager以二 进制流的形式来读取资源.此应用是查看 ...
- MVC5 下拉框(多选)
1.Model [Display(Name = "职位")] [Required] public int[] job { get; set; } //职位属性 public IEn ...
- PAT 1021 Deepest Root
#include <cstdio> #include <cstdlib> #include <vector> using namespace std; class ...
- angular-自定义模块
<!DOCTYPE html><html lang="en" ng-app="app"><head> <script ...