LOJ10067 构造完全图

给你一棵树 T,找出 T 能扩展出的边权和最小的完全图 G。
第一行 N 表示树 T 的点数;
保证输入数据构成一棵树。
输出仅一个数,表示最小的完全图 G 的边权和。
4
1 2 1
1 3 1
1 4 2
 
12
___________________________________________________________________________________
既然要求的是最小完全图,那么也就是1、图的最小生成树是给定的树,2、图最小
首先、把树上的边按从小到大排序。
然后、从小到大依次取边,这条边对应的两个联通分量的其他点连接边应该比该边大1,所以大小就是(siz[u]*siz[v]-1)*(e[i].w+1)
最后、上面所有新加边的和,再加上树上边的和,就是结果。
___________________________________________________________________________________
 1 #include<bits/stdc++.h>
2 using namespace std;
3 typedef long long ll;
4 const ll maxn=1e5+10;
5 ll js,n;
6 struct edge
7 {
8 ll u,v,w;
9 }e[maxn];
10 long long ans;
11 void addage(ll u,ll v,ll w)
12 {
13 e[js].u=u;e[js].v=v;e[js++].w=w;
14 }
15 bool cmp(edge a,edge b)
16 {
17 return a.w<b.w;
18 }
19 ll fa[maxn],sum[maxn];
20 ll find(ll x)
21 {
22 return fa[x]==x?x:fa[x]=find(fa[x]);
23 }
24 int main()
25 {
26 scanf("%d",&n);
27 for(ll u,v,w,i=1;i<n;++i)
28 {
29 scanf("%lld%lld%lld",&u,&v,&w);
30 addage(u,v,w);
31 ans+=w;
32 }
33 sort(e,e+js,cmp);
34 for(ll i=1;i<=n;++i)fa[i]=i,sum[i]=1;
35 for(ll i=0;i<n-1;++i)
36 {
37 ll a=find(e[i].u),b=find(e[i].v);
38 ans=ans+(sum[a]*sum[b]-1)*(e[i].w+1);
39 fa[a]=b;
40 sum[b]+=sum[a];
41 }
42 cout<<ans;
43 return 0;
44 }

LOJ10067的更多相关文章

  1. LOJ10067 构造完全图

    LOJ10067 构造完全图 最小生成树 每次找到最小的边,将边两端的块合并 (我之前想的是什么鬼) #include<cstdio> #include<algorithm> ...

随机推荐

  1. spring的ioc容器生成的对象也是代理对象对吗

    一直以为spring的ioc容器生成的对象都是代理对象,其实这个是错误的.spring ioc默认的都是原生对象  只有通过aop增强的对象才是代理对象 有@Transactional  注解或者配置 ...

  2. [leetcode]404. Sum of Left Leaves左叶子之和

    弄个flag记录是不是左节点就行 int res = 0; public int sumOfLeftLeaves(TreeNode root) { if (root==null) return res ...

  3. ESP8288-01S/ESP8288-01使用经验总结

    如图:ESP8288-01S/ESP8288-01的区别 超链接 ESP8288-01S/ESP8288-01是乐鑫公司推出的Wi-Fi模块,因为价格便宜迅速占领了市场,它可以做AT指令开发,也可以做 ...

  4. 数据接口请求异常:parsererror

    问题一:直接拿别人的文件放在本地打开 如下图 原因:这是提示"交叉源请求仅支持协议方案:HTTP.数据.Chrome.Chrome扩展.HTTPS." 也就是你不能用本地文件打开, ...

  5. 美团在TIDB方面的实践

    摘自-https://www.v2ex.com/t/508094 一.背景和现状 在美团,基于 MySQL 构建的传统关系型数据库服务已经难于支撑公司业务的爆发式增长,促使我们去探索更合理的数据存储方 ...

  6. 01 . Go之从零实现Web框架(框架雏形, 上下文Context,路由)

    设计一个框架 大部分时候,我们需要实现一个 Web 应用,第一反应是应该使用哪个框架.不同的框架设计理念和提供的功能有很大的差别.比如 Python 语言的 django和flask,前者大而全,后者 ...

  7. Mybatis-plus的使用步骤

    Mybatis-plus的简单使用步骤 花开堪折直需折,莫待无花空折枝 导入依赖 <dependency> <groupId>org.projectlombok</gro ...

  8. 基于腾讯云存储COS的ClickHouse数据冷热分层方案

    一.ClickHouse简介 ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS),支持PB级数据量的交互式分析,ClickHouse最初是为YandexMetrica ...

  9. nodejs事件和事件循环详解

    目录 简介 nodejs中的事件循环 phase详解 timers pending callbacks idle, prepare poll轮询 check close callbacks setTi ...

  10. Openstack Nova 控制服务 和 计算服务 (六)

    Openstack Nova 控制服务 和 计算服务 (六) 引用: https://docs.openstack.org/ocata/zh_CN/install-guide-rdo/nova.htm ...