最小生成树-----------联络员
Tyvj已经一岁了,网站也由最初的几个用户增加到了上万个用户,随着Tyvj网站的逐步壮大,管理员的数目也越来越多,现在你身为Tyvj管理层的联络员,希望你找到一些通信渠道,使得管理员两两都可以联络(直接或者是间接都可以)。本题中所涉及的通信渠道都是 双向 的。Tyvj是一个公益性的网站,没有过多的利润,所以你要尽可能的使费用少才可以。目前你已经知道,Tyvj的通信渠道分为两大类,一类是必选通信渠道,无论价格多少,你都需要把所有的都选择上;还有一类是选择性的通信渠道,你可以从中挑选一些作为最终管理员联络的通信渠道。数据保证给出的通信渠道可以让所有的管理员联通。注意: 对于某两个管理员 u,vu,v
,他们之间可能存在多条通信渠道,你的程序应该累加所有 u,vu,v
之间的必选通行渠道。输入格式第一行两个整数 n,mn,m
表示Tyvj一共有 nn
个管理员,有 mm
个通信渠道;第二行到 m+1m+1
行,每行四个非负整数,p,u,v,wp,u,v,w
当 p=1p=1
时,表示这个通信渠道为必选通信渠道;当 p=2p=2
时,表示这个通信渠道为选择性通信渠道;u,v,wu,v,w
表示本条信息描述的是 u,vu,v
管理员之间的通信渠道,uu
可以收到 vv
的信息,vv
也可以收到 uu
的信息,ww
表示费用。输出格式一个整数,表示最小的通信费用。数据范围1≤n≤20001≤n≤2000
1≤m≤100001≤m≤10000
输入样例:5 6
1 1 2 1
1 2 3 1
1 3 4 1
1 4 1 1
2 2 5 10
2 2 5 5
输出样例:9
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 2010, M = 10010;
int n, m;
int p[N];
struct Edge{int a, b, w;bool operator < (const Edge &t)const{return w < t.w; }
}e[M];
int find(int x){if (p[x] != x) p[x] = find(p[x]);return p[x];
}
int main(){cin >> n >> m;for (int i = 1; i <= n; i ++) p[i] = i;int res = 0, k = 0;for (int i = 0; i < m; i ++){int t, a, b, w;cin >> t >> a >> b >> w;if (t == 1){res += w;p[find(a)] = find(b);}else e[k ++] = {a, b, w};}sort(e, e + k);for (int i = 0; i < k; i ++){int a = find(e[i].a), b = find(e[i].b);if (a != b){res += e[i].w;p[a] = b;}}cout << res << endl;return 0;
}
最小生成树-----------联络员相关推荐
- 最小生成树(模板题:最优布线问题,繁忙的都市,联络员)(C++)
文章目录 序言 正文 First Promble 最优布线问题 时间限制: 1000 m s 1000 ms 1000ms 空间限制: 262144 K B 262144 KB 262144KB 题目 ...
- 联络员(最小生成树)
Description Tyvj已经一岁了,网站也由最初的几个用户增加到了上万个用户,随着Tyvj网站的逐步壮大,管理员的数目也越来越多,现在你身为Tyvj管理层的联络员,希望你找到一些通信渠道,使得 ...
- 【TYVJ】1307 联络员(最小生成树)
http://tyvj.cn/Problem_Show.aspx?id=1307 kruskal裸题.(水题红色警报) #include <cstdio> #include <cst ...
- 【图论专题】最小生成树及其简单应用
整理的算法模板合集: ACM模板 题目列表: 题目 算法 AcWing 1140. 最短网络 prim模板 AcWing 1141. 局域网 kruskal模板 AcWing 1142. 繁忙的都市 ...
- AcWing 1143. 联络员
题目 Tyvj已经一岁了,网站也由最初的几个用户增加到了上万个用户,随着Tyvj网站的逐步壮大,管理员的数目也越来越多,现在你身为Tyvj管理层的联络员,希望你找到一些通信渠道,使得管理员两两都可以联 ...
- 1143 联络员(kruskal算法)
1. 问题描述: Tyvj已经一岁了,网站也由最初的几个用户增加到了上万个用户,随着Tyvj网站的逐步壮大,管理员的数目也越来越多,现在你身为Tyvj管理层的联络员,希望你找到一些通信渠道,使得管理员 ...
- 联络员(最短路-kruskal)
Tyvj已经一岁了,网站也由最初的几个用户增加到了上万个用户,随着Tyvj网站的逐步壮大,管理员的数目也越来越多,现在你身为Tyvj管理层的联络员,希望你找到一些通信渠道,使得管理员两两都可以联络(直 ...
- 数据结构与算法(7-3)最小生成树(普里姆(Prim)算法和克鲁斯卡尔(Kruskal)算法)
目录 一.最小生成树简介 二.普里姆算法(Prim) 1.原理 2.存储 2-1.图顶点和权: 2-3. 最小生成树: 3.Prim()函数 3-1.新顶点入树 3-2.保留最小权 3-3. 找到最小 ...
- [kuangbin带你飞]专题六 最小生成树 L - 还是畅通工程 (简单最小生成树)
L - 还是畅通工程 题目链接:https://vjudge.net/contest/66965#problem/L 题目: 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府&qu ...
最新文章
- mysql5.5.9_mysql5.5.9字符集设置
- 【深度学习】医学图像分割的集成与后处理
- visual studio 2005占用cpu100% -_-...
- linux修改ip配置文件_协助调试Linux服务器经验分享
- Redhat或者Centos 手动安装htop
- (转)对SQLSERVER数据库事务日志的疑问
- Cocos2d-x 多分辨率适配完全解析
- java 堆栈信息分析_Java堆栈信息分析
- 饶阳彻查“黑砖窑”事件 卡酷族×××涉案人
- 使用easypoi导出excel设置表头样式
- Mac下移动硬盘的使用
- 第二次作业——时事评论
- 数据可视化,2022的春运地图
- 浏览器User-Agent大全
- Windows11 输入法图标不见了
- java inet aton_IP处理函数inet_aton()和inet_ntoa()使用说明
- mac os升级到Catalina版本原先根目录下自己创建的目录找不到解决方案
- 三菱CC-link IE field basic 控制伺服轴
- while true java_Java中对while(true)的理解
- 什么是软件测试(功能、接口、性能、自动化)详解