1827 tarjan+缩点
#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+缩点的更多相关文章
- hihoCoder 1185 连通性·三(Tarjan缩点+暴力DFS)
#1185 : 连通性·三 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 暑假到了!!小Hi和小Ho为了体验生活,来到了住在大草原的约翰家.今天一大早,约翰因为有事要出 ...
- POJ 1236 Network of Schools(Tarjan缩点)
Network of Schools Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 16806 Accepted: 66 ...
- King's Quest —— POJ1904(ZOJ2470)Tarjan缩点
King's Quest Time Limit: 15000MS Memory Limit: 65536K Case Time Limit: 2000MS Description Once upon ...
- 【BZOJ-2438】杀人游戏 Tarjan + 缩点 + 概率
2438: [中山市选2011]杀人游戏 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1638 Solved: 433[Submit][Statu ...
- 【BZOJ-1924】所驼门王的宝藏 Tarjan缩点(+拓扑排序) + 拓扑图DP
1924: [Sdoi2010]所驼门王的宝藏 Time Limit: 5 Sec Memory Limit: 128 MBSubmit: 787 Solved: 318[Submit][Stat ...
- 【BZOJ-1797】Mincut 最小割 最大流 + Tarjan + 缩点
1797: [Ahoi2009]Mincut 最小割 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1685 Solved: 724[Submit] ...
- BZOJ 1051 受欢迎的牛(Tarjan缩点)
1051: [HAOI2006]受欢迎的牛 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 4573 Solved: 2428 [Submit][S ...
- HDU4612+Tarjan缩点+BFS求树的直径
tarjan+缩点+树的直径题意:给出n个点和m条边的图,存在重边,问加一条边以后,剩下的桥的数量最少为多少.先tarjan缩点,再在这棵树上求直径.加的边即是连接这条直径的两端. /* tarjan ...
- POJ 1236 Network of Schools(强连通 Tarjan+缩点)
POJ 1236 Network of Schools(强连通 Tarjan+缩点) ACM 题目地址:POJ 1236 题意: 给定一张有向图,问最少选择几个点能遍历全图,以及最少加入�几条边使得 ...
随机推荐
- [App Store Connect帮助]六、测试 Beta 版本(4.1) 管理 Beta 版构建版本:为构建版本添加测试员
在“TestFlight”部分中,您可以查看您所有 App 版本的构建版本,并深入查看构建版本的详细信息.您也可以为某个构建版本添加群组或独立测试员. 必要职能:“帐户持有人”职能.“管理”职能或“A ...
- 乐搏讲自动化测试- Python自动化测试前景怎么样(4)
Python言语还能够写爬虫,但仅仅只是爬虫的入门罢了.通过Python入门爬虫比较简略易学,不需要在一开始把握太多太根底太底层的常识就能够很快上手,而且很快能够做出成果,十分合适小白一开始想做出点看 ...
- redis实际项目作用
我整理一下redis主要在项目作用,只是我接触到的 1 手机验证码存入redis中,可以限制什么时候有效 2 防止接口请求频率过高,例如一分钟只能请求5次 代码如下: <?php /** * ...
- 洛谷P5055 【模板】可持久化文艺平衡树(FHQ Treap)
题面 传送门 题解 日常敲板子.jpg //minamoto #include<bits/stdc++.h> #define R register #define inline __inl ...
- HUE通过oozie工作流执行shell脚本
HUE通过oozie工作流执行shell脚本 2018年01月17日 16:20:38 阅读数:217 首先上传对应的jar包和storm.sh脚本到hdfs,脚本内容如下: 脚本主要内容是:从hdf ...
- 内联标签------------大多数XHTML可以表示为两种类型的标签:块标签(block tag)和内联标签(inline tag)
内联标签 <em> 强调,大部分浏览器渲染为斜体. <strong> 强调,大部分浏览器渲染为黑体. <sub> 下标 <sup> 上标 内联标签通常用 ...
- 选择语言之switch case
程序语言-选择语言之switch case 多选一,类似if else if else if else 模版: Switch(选择条件) { Case(条件一)//相当于if Conso ...
- 盒子模型,top和margin-top
1. 标准盒子模型: width只是内容的宽度. 元素的总宽度=width + padding*2 +border*2 +margin*2. IE盒子模型: width=内容的宽度 + padding ...
- 利用eclipse调试JDK源码
先看效果图 综合网上各种教程,总结如下 新建 D:/jdk/src .D:/jdk/debug 目录 src存放源码 debug存放编译结果 将 %JAVA_HOME%/src.zip 解压到 D:/ ...
- Error parsing D:\sdkforas\android-sdk-windows\system-images\android-22\android-wear\x86\devices.xml
今天在工作过程中向Android Studio中导入一个项目,最后运行出现如下错误: Cannot reload AVD list: cvc-enumeration-valid: Value '280 ...