博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
最小树形图
阅读量:5236 次
发布时间:2019-06-14

本文共 2030 字,大约阅读时间需要 6 分钟。

 

最小树形图

题目描述

这是一道模板题。

给定包含 n 个结点, m 条有向边的一个图。试求一棵以结点 r 为根的最小树形图,并输出最小树形图每条边的权值之和,如果没有以 r为根的最小树形图,输出 1。

输入格式

第一行包含三个整数 n,m,r,意义同题目所述。

接下来 mm 行,每行包含三个整数 u,v,w表示图中存在一条从 u 指向 v 的权值为 w 的有向边。

输出格式

如果原图中存在以 r 为根的最小树形图,就输出最小树形图每条边的权值之和,否则输出 -1

样例

样例输入1

4 6 11 2 31 3 14 1 24 2 23 2 13 4 1

样例输出 1

3

样例解释 1

最小树形图中包含第 2, 5, 6 三条边,总权值为 1 + 1 + 1 = 3

样例输入 2

4 6 31 2 31 3 14 1 24 2 23 2 13 4 1

样例输出 2

4

样例输出 2

最小树形图中包含第 3, 5, 6 三条边,总权值为 2 + 1 + 1 =4

样例输入 3

4 6 21 2 31 3 14 1 24 2 23 2 13 4 1

样例输出 3

-1

样例解释 3

无法构成最小树形图,故输出 -1 。

 

 

模板题 

下标从0开始

1 #include 
2 #include
3 #include
4 #include
5 const int INF=0x3f3f3f3f; 6 #define MAXN 400005 7 #define MAXM 400010 8 using namespace std; 9 struct Edge{10 int u,v;11 int cost;12 }edge[MAXM];13 14 int pre[MAXN],id[MAXN],visit[MAXN];15 int in[MAXN];16 17 int zhuliu(int root,int n,int m){18 int res=0;19 while(1){20 for(int i=0;i
>n>>m>>r;80 for(int i=0;i
>edge[i].u>>edge[i].v>>edge[i].cost;82 edge[i].u--;83 edge[i].v--;84 }85 int ans=zhuliu(r-1,n,m);86 cout<
<
View Code

 

 

下标从1开始(要改两个地方:1.tn  2.--m -> m--)

1 #include 
2 #include
3 #include
4 #include
5 const int INF=0x3f3f3f3f; 6 #define MAXN 400005 7 #define MAXM 400010 8 using namespace std; 9 struct Edge{10 int u,v;11 int cost;12 }edge[MAXM];13 14 int pre[MAXN],id[MAXN],visit[MAXN];15 int in[MAXN];16 17 int zhuliu(int root,int n,int m){18 int res=0;19 while(1){20 for(int i=1;i<=n;i++){21 in[i]=INF;22 }23 for(int i=1;i<=m;i++){24 if(edge[i].u!=edge[i].v&&edge[i].cost
>n>>m>>r;80 for(int i=1;i<=m;i++){81 cin>>edge[i].u>>edge[i].v>>edge[i].cost;82 }83 int ans=zhuliu(r,n,m);84 cout<
<
View Code

 

转载于:https://www.cnblogs.com/Fighting-sh/p/9994314.html

你可能感兴趣的文章
Java反射之修改常量值
查看>>
用UIWebView加载本地图片和gif图
查看>>
jmeter远程分布执行遇到的网卡坑(A Test is currently running,stop or ....)
查看>>
Python正则表达式中的re.S
查看>>
Xcode 中设置部分文件ARC支持
查看>>
iOS-解决iOS8及以上设置applicationIconBadgeNumber报错的问题
查看>>
亡灵序曲-The Dawn
查看>>
实验五
查看>>
leetcode 347 priority,map的使用
查看>>
vue 校验插件 veeValidate使用
查看>>
WCF应用(二)
查看>>
jQuery实现返回顶部效果
查看>>
Java实现将数字转为大写汉字
查看>>
面试题3:二维数组中的查找
查看>>
android单元测试——初识
查看>>
MFC学习(6)——以数组矩阵形式表示读取出来的BMP图像||将数组矩阵数据转成BMP图像...
查看>>
Vuex入门(5)—— 为什么要用Action管理异步操作
查看>>
axios实现拦截器
查看>>
libevent简单介绍
查看>>
接口返回json
查看>>