hdu3072 Intelligence System (最小树形图?)
题意:给一个有向图,问要从0号点能到达所有点所需要经过路径的最小权值和是多少,然而,若两点强联通,则这两点互相到达不需要花费。保证0号点能到达所有点
tarjan缩点以后直接取每个点入边中花费最小的即可。
1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include<vector> 5 #include<queue> 6 #include<cmath> 7 #include<ctime> 8 #define LL long long int 9 using namespace std; 10 const int maxn=50050,maxm=100010; 11 12 LL rd(){ 13 LL x=0;char c=getchar();int neg=1; 14 while(c<'0'||c>'9'){if(c=='-') neg=-1;c=getchar();} 15 while(c>='0'&&c<='9') x=x*10+c-'0',c=getchar(); 16 return x*neg; 17 } 18 19 struct Edge{ 20 int a,b,l,ne; 21 }eg[maxm]; 22 int egh[maxn],ect; 23 int N,M; 24 int dfn[maxn],low[maxn],bel[maxn],stk[maxn],tot,pct,sct; 25 bool instk[maxn]; 26 int mi[maxn]; 27 28 inline void adeg(int a,int b,int l){ 29 eg[ect].a=a;eg[ect].b=b;eg[ect].l=l;eg[ect].ne=egh[a];egh[a]=ect++; 30 } 31 32 void tarjan(int x){ 33 dfn[x]=low[x]=++tot; 34 stk[++sct]=x;instk[x]=1; 35 for(int i=egh[x];i!=-1;i=eg[i].ne){ 36 int j=eg[i].b; 37 if(instk[j]) low[x]=min(low[x],dfn[j]); 38 else if(!dfn[j]){ 39 tarjan(j);low[x]=min(low[x],low[j]); 40 } 41 } 42 if(low[x]==dfn[x]){ 43 ++pct; 44 while(sct){ 45 instk[stk[sct]]=0; 46 bel[stk[sct]]=pct; 47 if(stk[sct--]==x) break; 48 } 49 } 50 } 51 52 int main(){ 53 int i,j,k; 54 while(~scanf("%d%d",&N,&M)){ 55 memset(egh,-1,sizeof(egh)); 56 memset(dfn,0,sizeof(dfn)); 57 memset(instk,0,sizeof(instk)); 58 ect=tot=pct=sct=0; 59 for(i=1;i<=M;i++){ 60 int a=rd(),b=rd(),c=rd(); 61 adeg(a,b,c); 62 } 63 64 for(i=0;i<N;i++) if(!dfn[i]) tarjan(i); 65 memset(mi,127,sizeof(mi)); 66 for(i=0;i<ect;i++){ 67 if(bel[eg[i].a]==bel[eg[i].b]) continue; 68 mi[bel[eg[i].b]]=min(mi[bel[eg[i].b]],eg[i].l); 69 }int ans=0; 70 for(i=1;i<=pct;i++){ 71 if(i!=bel[0]) ans+=mi[i]; 72 }printf("%d\n",ans); 73 } 74 }
转载于:https://www.cnblogs.com/Ressed/p/9409493.html
hdu3072 Intelligence System (最小树形图?)相关推荐
- [HDU3072]:Intelligence System(塔尖+贪心)
题目传送门 题目描述 "这一切都是命运石之门的选择." 试图研制时间机器的机关SERN截获了中二科学家伦太郎发往过去的一条短 信,并由此得知了伦太郎制作出了电话微波炉(仮). 为了 ...
- NOI数据结构:最小树形图
最小树形图-朱刘算法详解 +例题解析 最小树形图-朱刘算法详解 +例题解析_pursuit的博客-CSDN博客_最小树形图 图论 -- 生成树 -- 最小树形图 图论 -- 生成树 -- 最小树形图_ ...
- Intelligence System HDU - 3072(强连通分量)
Intelligence System HDU - 3072 题意:一个人要传递命令给所有人,如果两人之间互达,不需任何费用,求最少费用 有向图强连通. 1 #include <bits/std ...
- 最小树形图及其生产方法
诸位看官,这是我第一次在整篇文章的所有图片里面加水印.小弟写博客的时间不长,就有两篇博客被盗用并未注明原文网址.这一方面使我痛心不已,另一方面迫使我不得不重新考虑一下版权保护问题.小弟不是吝啬鬼,如果 ...
- poj3164(最小树形图模版)
对最小树形图做个小小的总结: 1:清除自环,自环是不可能存在于任何最小树形图中的: 2:求出每个顶点的的最小入边: 3:判断该图是否存在最小树形图,由 1 可以判定,或者以图中顶点v作为根节点遍历该图 ...
- HDU6141(最小树形图)
对最小树形图做个小小的总结: 1:清除自环,自环是不可能存在于任何最小树形图中的: 2:求出每个顶点的的最小入边: 3:判断该图是否存在最小树形图,由 1 可以判定,或者以图中顶点v作为根节点遍历该图 ...
- HDU4009(最小树形图)
对最小树形图做个小小的总结: 1:清除自环,自环是不可能存在于任何最小树形图中的: 2:求出每个顶点的的最小入边: 3:判断该图是否存在最小树形图,由 1 可以判定,或者以图中顶点v作为根节点遍历该图 ...
- HDU2121(最小树形图的模版算法题)
这个道题也是在看了大神之后敲的,我也是刚刚学习这个 ^ _ ^,看来离大佬们的距离还是太远了:以下内容也是在学习大佬讲解的内容之后,根据大佬们的详细讲解中总结出来的! 贪心算法.可以想到每次都找每个点 ...
- 模板 - 最小树形图(朱刘算法)
整理的算法模板合集: ACM模板 目录 给定一个根的有向图的最小树形图 为给定根的树形图 判断无解的方法 给定一个根的有向图的最小树形图 给定包含 n 个结点,m 条有向边的一个图.试求一棵以结点 r ...
最新文章
- Linux登录安全及用户操作审计 ,linux下清理日志脚本
- 泛型技巧系列:简单类型选择器
- 工作七年后,我梳理了自己的产品工作流程
- POJ3020深度解析(二分图--最小路径覆盖)
- 电脑CPU选购的几个指标
- qemu-img创建qcow2虚拟磁盘的预分配策略
- 2017年SEO推广优化怎么做
- [译] 美国证券法对 ICO 及相关 Fund 的最新动态
- RMAN-06217: 错误
- 众里寻他千百度,蓦然回首,那人却在灯火阑珊处
- mysql查询自然周_Hive和MySQL中自然周保持一致的方法
- 二进制加法器原理c语言,加法器电路原理_二进制加法器原理_与非门二进制加法器...
- cesiumlab v3.0.2—通用模型切片
- 如何评价柏拉图_哲学家如何看待死亡?|读柏拉图《斐多篇》(1)
- Epicor系统二次开发
- 【Django】admin的save_modle方法重写-20220803
- 将openwrt软路由装进U盘中并运行
- 数据库:试图删除被依赖对象
- python爬虫能当副业吗?有哪些平台能接单?
- 好物推荐:2020 年常用软件锦集!帮你解决 90% 的软件问题
热门文章
- php require 500,thinkphp5出现500错误怎么办
- 疲劳容器的定义_材料疲劳
- 设计模式之模版方法模式demo
- 线程其实就是一个个指令组成的,当这个线程内的指令全部执行完了,那么这个线程也就执行结束了
- html中input两个圆括号,如何使用Jquery将光标聚焦在两个括号(括号)之间?
- PHP外部引用样式,PHP引用外部css有什么好处
- 硬件:关于ARM的22个常用概念!
- 开发中常用的一些神器推荐
- HTTP消息中Header头部信息整理
- eureka 其它语言_SpringCloud之Eureka-Go语言中文社区