题目:http://www.joyoi.cn/problem/tyvj-1391

考虑对于每一条边,新加的长度是(左边点数*右边点数-1)*(当前边权+1);

然后要kruskal的思想,把边从小到大加进去才能用上边的式子,因为保证了当前边两边的子图中没有大于当前边的边。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define ll long long
using namespace std;
const int N=;
int T,n,fa[N],siz[N],xnt;
ll ans;
struct Edge{
int x,y;ll z;
Edge(int x=,int y=,ll z=):x(x),y(y),z(z) {}
}edge[N];
int find(int a)
{
if(fa[a]==a)return a;
return fa[a]=find(fa[a]);
}
bool cmp(Edge a,Edge b){return a.z<b.z;}
int main()
{
scanf("%d",&T);
while(T--)
{
ans=;xnt=;
scanf("%d",&n);
for(int i=;i<=n;i++)fa[i]=i,siz[i]=;
int x,y;ll z;
for(int i=;i<n;i++)
{
scanf("%d%d%lld",&x,&y,&z);
edge[++xnt]=Edge(x,y,z);
}
sort(edge+,edge+xnt+,cmp);
for(int i=;i<=xnt;i++)
{
x=edge[i].x;y=edge[i].y;z=edge[i].z;
ans+=(siz[find(x)]*siz[find(y)]-)*(z+);
siz[find(y)]+=siz[find(x)];
fa[find(x)]=find(y);
}
printf("%lld\n",ans);
}
return ;
}

tyvj1391走廊泼水节的更多相关文章

  1. tyvj1391走廊泼水节——kruskal

    题目:http://www.joyoi.cn/problem/tyvj-1391 大意就是把一个树扩充成一个完全图,并且图中最小生成树仍是原来的树. 思路很巧妙,把边按权值从小到大排序,然后模拟加边的 ...

  2. [TYVJ1391]走廊泼水节

    Description 话说,中中带领的OIER们打算举行一次冬季泼水节,当然这是要秘密进行的,绝对不可以让中中知道.不过中中可是老江湖了,当然很快就发现了我们的小阴谋,于是他准备好水枪迫不及待的想要 ...

  3. [tyvj-1391]走廊泼水节 最小生成树

    做克鲁斯卡尔的时候维护一个并查集即可. #include <iostream> #include <cstdio> #include <cstring> #incl ...

  4. CH6201 走廊泼水节【最小生成树】

    6201 走廊泼水节 0x60「图论」例题 描述 [简化版题意]给定一棵N个节点的树,要求增加若干条边,把这棵树扩充为完全图,并满足图的唯一最小生成树仍然是这棵树.求增加的边的权值总和最小是多少. 我 ...

  5. [Tvvj1391]走廊泼水节(最小生成树)

    [Tvvj1391]走廊泼水节 Description 给定一棵N个节点的树,要求增加若干条边,把这棵树扩充为完全图,并满足图的唯一最小生成树仍然是这棵树.求增加的边的权值总和最小是多少. 完全图:完 ...

  6. 「CH6201」走廊泼水节

    「CH6201」走廊泼水节 传送门 考虑 \(\text{Kruskal}\) 的过程以及用到一个最小生成树的性质即可. 在联通两个联通块时,我们肯定会选择最小的一条边来连接这两个联通块,那么这两个联 ...

  7. 奇葩最小生成树--->走廊泼水节(tyvj1391)

    题目描述 话说,中中带领的OIER们打算举行一次冬季泼水节,当然这是要秘密进行的,绝对不可以让中中知道.不过中中可是老江湖了,当然很快就发现了我们的小阴谋,于是他准备好水枪迫不及待的想要加入我们了. ...

  8. P1391 走廊泼水节

    时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景  话说,中中带领的OIER们打算举行一次冬季泼水节,当然这是要秘密进行的,绝对不可以让中中知道.不过中中可是老 ...

  9. CH 6021 走廊泼水节

    描述 [简化版题意]给定一棵N个节点的树,要求增加若干条边,把这棵树扩充为完全图,并满足图的唯一最小生成树仍然是这棵树.求增加的边的权值总和最小是多少. 我们一共有N个OIER打算参加这个泼水节,同时 ...

随机推荐

  1. spring cloud 学习(一)初学SpringCloud

    初学SpringCloud 前言 在SpringBoot的坑还没填完的情况下,我又迫不及待地开新坑了.主要是寒假即将结束了,到时又得忙于各种各样的事情……留个坑给自己应该就会惦记着它,再慢慢地补上…… ...

  2. SQL基础分页存储过程(案例一)

    --分页 存储过程 案例 -- 所执行的存储过程 create proc pageForUsers @currPage int, --当前页数 @pageSize int, --每页多少条记录 @co ...

  3. Python gui编程pyQt5安装步骤

    Python gui编程pyQt5安装步骤 =============================== -m PyQt5.uic.pyuic  $FileName$ -o $FileNameWit ...

  4. PHP:第一章——PHP中的魔术常量

    <?php //__LINE__输出常量所在的行 //echo __LINE__; //2.__FILE__常量返回文件的完整路径和文件名; //echo __FILE__; //3.__DIR ...

  5. ajax ajax基本介绍

    jquery中ajax方法参数详解 url 要求是string类型参数(默认为当前页面地址) 发送请求的地址 type 要求是string类型的参数,请求方式(post或get)默认为get.注意其他 ...

  6. MyEclipse WebSphere开发教程:WebSphere 7安装指南(一)

    [周年庆]MyEclipse个人授权 折扣低至冰点!立即开抢>> [MyEclipse最新版下载] 一.先决条件和系统信息 想要使用WebSphere,您必须拥有MyEclipse Blu ...

  7. SWIFT中的repeat...while

    SWIFT中的repeat...while类似于JAVA\.NET中的 do while.大同小异只是把do换成了repeat var index = 10 repeat{ print(index) ...

  8. 详解iOS应用程序内使用IAP/StoreKit付费、沙盒(SandBox)测试、创建测试账号流程

    Himi  原创, 欢迎转载,转载请在明显处注明! 谢谢. 原文地址:http://blog.csdn.net/xiaominghimi/article/details/6937097 //——201 ...

  9. asp.net mvc json数据缓存

    一些虚拟主机资源给的少, 如果直接用框架缓存, 估计内存就爆了吧, 如果不用缓存, 虚拟主机自带的数据库也是限制资源的, 访问多了就直接给timeout了, 用json文件形式缓存查询出来的数据, 虽 ...

  10. iOS-----推送机制(下)

    推 送 机 制(下) 单击”从证书颁发机构请求证书”后,将会显示下图所示的对话框 输入电子邮件地址和常用名称,并选中“存储到磁盘”单选钮,然后单击“继续”按钮,该程序将会创建一个“Certificat ...