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;
}

最小生成树-----------联络员相关推荐

  1. 最小生成树(模板题:最优布线问题,繁忙的都市,联络员)(C++)

    文章目录 序言 正文 First Promble 最优布线问题 时间限制: 1000 m s 1000 ms 1000ms 空间限制: 262144 K B 262144 KB 262144KB 题目 ...

  2. 联络员(最小生成树)

    Description Tyvj已经一岁了,网站也由最初的几个用户增加到了上万个用户,随着Tyvj网站的逐步壮大,管理员的数目也越来越多,现在你身为Tyvj管理层的联络员,希望你找到一些通信渠道,使得 ...

  3. 【TYVJ】1307 联络员(最小生成树)

    http://tyvj.cn/Problem_Show.aspx?id=1307 kruskal裸题.(水题红色警报) #include <cstdio> #include <cst ...

  4. 【图论专题】最小生成树及其简单应用

    整理的算法模板合集: ACM模板 题目列表: 题目 算法 AcWing 1140. 最短网络 prim模板 AcWing 1141. 局域网 kruskal模板 AcWing 1142. 繁忙的都市 ...

  5. AcWing 1143. 联络员

    题目 Tyvj已经一岁了,网站也由最初的几个用户增加到了上万个用户,随着Tyvj网站的逐步壮大,管理员的数目也越来越多,现在你身为Tyvj管理层的联络员,希望你找到一些通信渠道,使得管理员两两都可以联 ...

  6. 1143 联络员(kruskal算法)

    1. 问题描述: Tyvj已经一岁了,网站也由最初的几个用户增加到了上万个用户,随着Tyvj网站的逐步壮大,管理员的数目也越来越多,现在你身为Tyvj管理层的联络员,希望你找到一些通信渠道,使得管理员 ...

  7. 联络员(最短路-kruskal)

    Tyvj已经一岁了,网站也由最初的几个用户增加到了上万个用户,随着Tyvj网站的逐步壮大,管理员的数目也越来越多,现在你身为Tyvj管理层的联络员,希望你找到一些通信渠道,使得管理员两两都可以联络(直 ...

  8. 数据结构与算法(7-3)最小生成树(普里姆(Prim)算法和克鲁斯卡尔(Kruskal)算法)

    目录 一.最小生成树简介 二.普里姆算法(Prim) 1.原理 2.存储 2-1.图顶点和权: 2-3. 最小生成树: 3.Prim()函数 3-1.新顶点入树 3-2.保留最小权 3-3. 找到最小 ...

  9. [kuangbin带你飞]专题六 最小生成树 L - 还是畅通工程 (简单最小生成树)

    L - 还是畅通工程 题目链接:https://vjudge.net/contest/66965#problem/L 题目: 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府&qu ...

最新文章

  1. mysql5.5.9_mysql5.5.9字符集设置
  2. 【深度学习】医学图像分割的集成与后处理
  3. visual studio 2005占用cpu100% -_-...
  4. linux修改ip配置文件_协助调试Linux服务器经验分享
  5. Redhat或者Centos 手动安装htop
  6. (转)对SQLSERVER数据库事务日志的疑问
  7. Cocos2d-x 多分辨率适配完全解析
  8. java 堆栈信息分析_Java堆栈信息分析
  9. 饶阳彻查“黑砖窑”事件 卡酷族×××涉案人
  10. 使用easypoi导出excel设置表头样式
  11. Mac下移动硬盘的使用
  12. 第二次作业——时事评论
  13. 数据可视化,2022的春运地图
  14. 浏览器User-Agent大全
  15. Windows11 输入法图标不见了
  16. java inet aton_IP处理函数inet_aton()和inet_ntoa()使用说明
  17. mac os升级到Catalina版本原先根目录下自己创建的目录找不到解决方案
  18. 三菱CC-link IE field basic 控制伺服轴
  19. while true java_Java中对while(true)的理解
  20. 什么是软件测试(功能、接口、性能、自动化)详解

热门文章

  1. linux下限制CPU使用率的3种方法
  2. 大量短视频如何添加个人logo呢?
  3. Python实现comtrade文件读取
  4. codewars - Human Readable Time
  5. 帆软报错11300001
  6. GM上线就到GM后台地图
  7. GD32驱动SK6812灯珠
  8. 1000套HTML5期末大作业——电影我不是药神响应式页面带轮播(4页)
  9. 今天,我们来深挖一位链游和NFT界的「隐藏大佬」
  10. C语言读取BMP格式图片