大致题意给你有一个点数为n<=100的有向图。

求解两个子任务:

1:最少给多少个点信息,这些点的信息可以顺着有向边传遍全图。

2:最少要加多少条边,使得整个图强联通。

求强联通分量再缩点后得到一个有向无环图。

设其入度为0的点数为t1,出度为0的点数为t2

1的答案即为强联通缩点之后入度为0的点的数量t1。

2的答案即为max(t1,t2).

注意一个特殊情况:若缩点后只有一个点了(即原图便是强联通的)此时t1=1,t2=1但是第二个任务的答案应当是0。

AC代码:

#include<cstdio>
#include<cmath>
#include<cstring>
#include<iostream>
#define rep(i,a,b) for(int i=a;i<=b;++i)
using namespace std;
const int MAXN=;
int n,cnt;
int graph[MAXN][MAXN];
int DFN[MAXN],low[MAXN],Stap[MAXN],label[MAXN];
bool instake[MAXN];
int Stop,Bcnt;
int adjm[MAXN][MAXN];
int in[MAXN],out[MAXN];
void init()
{
memset(graph,,sizeof(graph));
memset(DFN,,sizeof(DFN));
memset(in,,sizeof(in));
memset(out,,sizeof(out));
memset(adjm,,sizeof(adjm));
memset(instake,,sizeof(instake));
int t;
cnt=;Stop=;Bcnt=;
rep(i,,n)
{
while(scanf("%d",&t)==&&t)
{
graph[i][++graph[i][]]=t;
}
}
}
void tarjan(int u)
{
DFN[u]=low[u]=++cnt;
instake[u]=;
Stap[++Stop]=u;
rep(i,,graph[u][])
{
int v=graph[u][i];
if(!DFN[v])
{
tarjan(v);
if(low[v]<low[u]) low[u]=low[v];
}
else if(instake[v]&&DFN[v]<low[u]) low[u]=DFN[v];
}
int j;
if(DFN[u]==low[u])
{
++Bcnt;
do
{
j=Stap[Stop--];
instake[j]=;
label[j]=Bcnt;
}while(j!=u);
}
}
int main()
{
//freopen("in.txt","r",stdin);
while(scanf("%d",&n)==)
{
init();
rep(i,,n)
{
if(!DFN[i]) tarjan(i);
}
if(Bcnt==)
{
printf("1\n0\n");continue;
}
rep(i,,n)
{
rep(j,,graph[i][])
{
int v=graph[i][j];
if(label[i]!=label[v])
{
out[label[i]]++;
in[label[v]]++;
}
}
}
int t1=,t2=;
rep(i,,Bcnt)
{
if(in[i]==) t1++;
if(out[i]==) t2++;
}
printf("%d\n%d\n",t1,max(t1,t2));
}
return ;
}

poj 1236 强联通分量的更多相关文章

  1. POJ 2186 强联通分量

    点击打开链接 题意:牛A喜欢牛B,若牛B喜欢牛C,则牛A喜欢牛C,问最后多少牛被其它全部牛喜欢 思路:用强联通分量进行缩点,最后形成的图是有向无环图DAG.而拓扑序的值为DAG的长度,则加一,可是最后 ...

  2. 【POJ 1236 Network of Schools】强联通分量问题 Tarjan算法,缩点

    题目链接:http://poj.org/problem?id=1236 题意:给定一个表示n所学校网络连通关系的有向图.现要通过网络分发软件,规则是:若顶点u,v存在通路,发给u,则v可以通过网络从u ...

  3. POJ 2186-Popular Cows (图论-强联通分量Korasaju算法)

    题目链接:http://poj.org/problem?id=2186 题目大意:有n头牛和m对关系, 每一对关系有两个数(a, b)代表a牛认为b牛是“受欢迎”的,且这种关系具有传递性, 如果a牛认 ...

  4. POJ 2186 Popular Cows(强联通分量)

    题目链接:http://poj.org/problem?id=2186 题目大意:    每一头牛的愿望就是变成一头最受欢迎的牛.现在有N头牛,给你M对整数(A,B),表示牛A认为牛B受欢迎. 这 种 ...

  5. POJ 2186 Popular cows(Kosaraju+强联通分量模板)

    题目链接:http://poj.org/problem?id=2186 题目大意:给定N头牛和M个有序对(A,B),(A,B)表示A牛认为B牛是红人,该关系具有传递性,如果牛A认为牛B是红人,牛B认为 ...

  6. POJ 1904 King's Quest 强联通分量+输入输出外挂

    题意:国王有n个儿子,现在这n个儿子要在n个女孩里选择自己喜欢的,有的儿子可能喜欢多个,最后国王的向导给出他一个匹配.匹配有n个数,代表某个儿子和哪个女孩可以结婚.已知这些条件,要你找出每个儿子可以和 ...

  7. Kosaraju算法---强联通分量

    1.基础知识 所需结构:原图.反向图(若在原图中存在vi到vj有向边,在反向图中就变为vj到vi的有向边).标记数组(标记是否遍历过).一个栈(或记录顶点离开时间的数组).      算法描叙: :对 ...

  8. [CF #236 (Div. 2) E] Strictly Positive Matrix(强联通分量)

    题目:http://codeforces.com/contest/402/problem/E 题意:给你一个矩阵a,判断是否存在k,使得a^k这个矩阵全部元素都大于0 分析:把矩阵当作01矩阵,超过1 ...

  9. UVa 11324 & 强联通分量+DP

    题意: 一张无向图,求点集使其中任意两点可到达. SOL: 强联通分量中的点要么不选要么全都选,然后缩点DAG+DP 记录一下思路,不想写了...代码满天飞.

随机推荐

  1. 再谈数据库优化(database tuning)的真谛和误区

    当今各行业信息量呈现爆炸式增长,因此,数据库优化也就显得弥足重要.随着数据库性能问题的出现,每位用户为了解决出现的问题,不得不满网上到处搜索优化的”灵丹妙药“和捷径,于是,就出现了各种各样的条条框框和 ...

  2. 【转】EF 获取类的属性并排除特定属性(getType().GetProperties())

    当获取一个类型(class)的所有属性时,想排除指定属性,该如何操作? 比如:EF中一个实体类型UserEntity,通过反射获取这个类的属性时,想排除这个为映射的字段ID 使用以下方法即可! Pro ...

  3. 反向代理/负载均衡/session/cookie

    正向代理:客户端将流量重定向到burpsuite等软件或连接到VPN再访问服务器而不是直接访问服务器的场景.流量流动方向是真正机器--代理服务器.正向代理又称代理.普通代理. 反向代理:服务器端使用反 ...

  4. python格式化日期

    #!/usr/bin/python # -*- coding: UTF-8 -*- import time import calendar """ 时间元组(年.月.日. ...

  5. springboot aop 自定义注解方式实现一套完善的日志记录(完整源码)

    https://www.cnblogs.com/wenjunwei/p/9639909.html https://blog.csdn.net/tyrant_800/article/details/78 ...

  6. css 改变浏览器滚动条的样式

    /*滚动条样式*/ .innerbox::-webkit-scrollbar {/*滚动条整体样式*/ width: 4px; /*高宽分别对应横竖滚动条的尺寸*/ height: 4px; } .i ...

  7. Vm install centos7

  8. js如何返回两个数的商的整数和余数部分?

    js中,如何返回两个数的商的整数和余数部分? 如: num1:100 ,num2:12 var num = parseFloat(100/12); //值: 8.333333333333334 那么如 ...

  9. Java Web(五) 监听器Listener

    监听器概述 在上一篇里介绍了过滤器Filter,而Listener是Servlet的另一个高级特性.Listener用于监听Java Web程序中的事件,例如创建,修改,删除Session,reque ...

  10. learning ddr RTT

    Rtt: Dynamic ODT.DDR3引入的新特性.在特定的应用环境下为了更好的在数据总线上改善信号完整性, 不需要特定的MRS命令即可以改变终结强度(或者称为终端匹配).在MR2中的A9和A10 ...