#include<stdio.h>

#include<stack>

#include<iostream>

#include<string.h>

#include<vector>

#include<string>

using namespace std;

#define inf 1000000000

#define N 2100

vector<int>h[N];//

stack<int>q;///

int dfn[N],low[N],index,indegree[N],a[N],visit[N],suo[N],fee[N],yong;

int min(int a,int b) {

return a>b?b:a;

}

void tarjan(int u) {

int i;

dfn[u]=low[u]=++index;

visit[u]=1;

q.push(u);

for(i=0;i<h[u].size();i++) {

int v=h[u][i];

if(!dfn[v]) {

tarjan(v);

low[u]=min(low[u],low[v]);//

}

else

if(visit[v]==1) //在寨中

low[u]=min(low[u],low[v]);

}

if(dfn[u]==low[u]) {//如果存在一个强连通分量就将里面的出寨

yong++;

int t;

do {

   t=q.top();

q.pop();

visit[t]=2;//已经浏览过了

suo[t]=yong;//讲一个连通分量置为一个点

            if(fee[yong]>a[t])//求出缩点中最小的费用

fee[yong]=a[t];

}while(t!=u);



}

}

int main() {

int n,m,i,j,count,num;

while(scanf("%d%d",&n,&m)!=EOF) {

while(!q.empty()) 

q.pop();

for(i=1;i<=n;i++) {//输入和初始化

scanf("%d",&a[i]);

h[i].clear();

fee[i]=inf;

}

while(m--) {

scanf("%d%d",&i,&j);//

h[i].push_back(j);//



memset(visit,0,sizeof(visit));

index=0;yong=0;

memset(dfn,0,sizeof(dfn));

memset(low,0,sizeof(low));

for(i=1;i<=n;i++)

if(visit[i]!=2)//是否已经入过寨

tarjan(i);

count=0;

memset(indegree,0,sizeof(indegree));

for(i=1;i<=n;i++) 

for(j=0;j<h[i].size();j++) 

  if(suo[i]!=suo[h[i][j]])//如果不是同一个缩点

  indegree[suo[h[i][j]]]++;

  num=0;

  for(i=1;i<=yong;i++)

  if(indegree[i]==0) {//找入度为零的点

  count+=fee[i];

  num++;

  }

  printf("%d %d\n",num,count);

}

return 0;

}

1827 tarjan+缩点的更多相关文章

  1. hihoCoder 1185 连通性·三(Tarjan缩点+暴力DFS)

    #1185 : 连通性·三 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 暑假到了!!小Hi和小Ho为了体验生活,来到了住在大草原的约翰家.今天一大早,约翰因为有事要出 ...

  2. POJ 1236 Network of Schools(Tarjan缩点)

    Network of Schools Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 16806   Accepted: 66 ...

  3. King's Quest —— POJ1904(ZOJ2470)Tarjan缩点

    King's Quest Time Limit: 15000MS Memory Limit: 65536K Case Time Limit: 2000MS Description Once upon ...

  4. 【BZOJ-2438】杀人游戏 Tarjan + 缩点 + 概率

    2438: [中山市选2011]杀人游戏 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1638  Solved: 433[Submit][Statu ...

  5. 【BZOJ-1924】所驼门王的宝藏 Tarjan缩点(+拓扑排序) + 拓扑图DP

    1924: [Sdoi2010]所驼门王的宝藏 Time Limit: 5 Sec  Memory Limit: 128 MBSubmit: 787  Solved: 318[Submit][Stat ...

  6. 【BZOJ-1797】Mincut 最小割 最大流 + Tarjan + 缩点

    1797: [Ahoi2009]Mincut 最小割 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1685  Solved: 724[Submit] ...

  7. BZOJ 1051 受欢迎的牛(Tarjan缩点)

    1051: [HAOI2006]受欢迎的牛 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 4573  Solved: 2428 [Submit][S ...

  8. HDU4612+Tarjan缩点+BFS求树的直径

    tarjan+缩点+树的直径题意:给出n个点和m条边的图,存在重边,问加一条边以后,剩下的桥的数量最少为多少.先tarjan缩点,再在这棵树上求直径.加的边即是连接这条直径的两端. /* tarjan ...

  9. POJ 1236 Network of Schools(强连通 Tarjan+缩点)

    POJ 1236 Network of Schools(强连通 Tarjan+缩点) ACM 题目地址:POJ 1236 题意:  给定一张有向图,问最少选择几个点能遍历全图,以及最少加入�几条边使得 ...

随机推荐

  1. bzoj 1604: [Usaco2008 Open]Cow Neighborhoods 奶牛的邻居【切比雪夫距离+并查集+multiset】

    参考:http://hzwer.com/4361.html 坐标开long long,inf开大点 先曼哈顿转切比雪夫(x+y,x-y),距离就变成了max(x',y'): 先按x排序,维护两个指针, ...

  2. Java多线程(一) Thread和 Runnable

    http://www.cnblogs.com/lwbqqyumidi/p/3804883.html 1.继承Thread 2.实现Runnable接口 public class MyRunnable ...

  3. 51nod 1018 排序

    1018 排序 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题  收藏  关注 给出N个整数,对着N个整数进行排序 Input 第1行:整数的数量N(1 <= N  ...

  4. 启动tomcat报错:ImageFormatException

    启动某工程报错: java.lang.NoClassDefFoundError: com/sun/image/codec/jpeg/ImageFormatException 查找此类存在于jdk的rt ...

  5. .net引用System.Data.SQLite操作SQLite

    之所以要做这个笔记,是因为在.NET中使用System.Data.SQLite的时候,遇到了些问题,这些问题是相对于引用其他dll没有遇到过的,所以作个笔记,记录一下. 简单起见,首先建立一个控制台项 ...

  6. select count(1) 和 select count(*)的区别

    统计一个表T有多少行数据,通常写法是: 查询A:select count(*) from T 但也可以采用下面语句来查: 查询B:select count(1) from T 结果通常是一样的.那么二 ...

  7. MySQL详解(25)-----------MySQL性能优化

    1.    简介 在Web应用程序体系架构中,数据持久层(通常是一个关系数据库)是关键的核心部分,它对系统的性能有非常重要的影响.MySQL是目前使用最多的开源数据库,但是MySQL数据库的默认设置性 ...

  8. PHP7 上传文件报错 Internal Server Error 解决方法

    打开Apache配置httpd.conf.在最后添加FcgidMaxRequestLen指令一个足够大的值(以字节为单位),例如 FcgidMaxRequestLen 100000000 最后重新启动 ...

  9. 3星|《未来公司》:Uber简史

    未来公司(卡兰尼克和他的Uber帝国)(精) 从Uber创始人卡兰尼克的角度讲的Uber简史,截止到2017年.书中有不少Uber的负面新闻,比国内的同类书要好. 基本是流水账.想了解这家公司的历史, ...

  10. HDU_1548_A strange lift

    题意:一部电梯(共top层),每一楼有一个数字k,在该层只能上k层或者下k层(up和down按钮),问从当前层到目标层按按钮的最小次数. 分析:广度优先搜索. 总结:初写BFS,仿照别人的代码,这方面 ...