背景

P.S.S:“我来自哪里?”
WH:“你来自一个图。”
P.S.S:“我是谁?”
WH:“你是最小生成树。”
P.S.S:“我又要到哪里去?”
WH:“你要成为一个最小完全图(边权之和最小的完全图)。”
P.S.S:“为……为什么啊?”
WH:“这是你的宿命!因为你无聊!!!P.S.S!”

描述

最小生成树P.S.S在宿命的指引下找到了巫师Kismi。P.S.S希望Kismi能帮自己变成一个完全图。Kismi由于某些不可告人的原因,把这件事交给了你。

PS: 可以保证,这个最小生成树对于最后求出的完全图是唯一的。

格式

输入格式

输入的第一行是一个整数n,表示生成树的节点数。

接下来有n-1行,每行有三个正整数,依次表示每条边的端点编号和边权。

(顶点的边号在1-n之间,边权<maxint)

输出格式

一个整数ans,表示以该树为最小生成树的最小完全图的边权之和。

输入:

3
1 2 4
2 3 7

输出:

19

思路:每次从最小生成树中选一个最小边添加到图中,设该边的权值为w,那么该边所连接的两个连通分量的结点之间的权值为w+1

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
typedef long long ll;
const int MAXN=;
struct Edge{
int u,v;
ll w;
}es[MAXN];
bool operator<(Edge e1,Edge e2)
{
return e1.w < e2.w;
}
int par[MAXN],tot[MAXN];
ll res;
void prep()
{
for(int i=;i<MAXN;i++)
{
par[i]=i;
tot[i]=;
}
}
int fnd(int x)
{
if(x==par[x])
return x;
return par[x]=fnd(par[x]);
}
void unite(int u, int v,ll w)
{
int a=fnd(u);
int b=fnd(v);
res+=((tot[a]*tot[b]-)*(w+));
par[b]=a;
tot[a]+=tot[b];
}
int main()
{
int n;
scanf("%d",&n);
for(int i=;i<n-;i++)
{
scanf("%d%d%lld",&es[i].u,&es[i].v,&es[i].w);
}
sort(es,es+n-);
prep();
for(int i=;i<n-;i++)
{
res+=es[i].w;
unite(es[i].u,es[i].v,es[i].w);
}
printf("%lld\n",res);
return ;
}

Vijos1579:宿命的PSS的更多相关文章

  1. 宿命的PSS

    宿命的PSS 时间限制: 1 Sec  内存限制: 128 MB提交: 60  解决: 37[提交][状态][讨论版] 题目描述 最小生成树P.S.S在宿命的指引下找到了巫师Kismi.P.S.S希望 ...

  2. 内存VSS/RSS/PSS/USS名词解释

    VSS(virtual set size)虚拟耗用内存(包含共享库占用的内存) RSS(Resident set size)实际使用物理内存(包含共享库占用的内存) RSS是进程实际驻存在物理内存的部 ...

  3. VSS、RSS、PSS、USS

    VSS:Virtual Set Size,虚拟耗用内存.它是一个进程能访问的所有内存空间地址的大小.这个大小包含了一些没有驻留在RAM中的内存,就像mallocs已经被分配,但还没有写入.VSS很少用 ...

  4. android内存耗用:VSS/RSS/PSS/USS

    VSS- Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)  不是真实当前应用进程所占用的内存. 内存分配的原理 从操作系统角度来看,进程分配内存有两种方式,分别由两个系统调用完 ...

  5. [转]Android中内存占用的含义:(VSS,PSS,RSS,USS)

    Android中内存占用的含义:(VSS,PSS,RSS,USS) 作者: andforce 分类: 安卓系统 发布时间: 2013-09-07 00:03 ė1,915 浏览数 6没有评论 在eng ...

  6. Android内存之VSS/RSS/PSS/USS

    Terms VSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存) RSS - Resident Set Size 实际使用物理内存(包含共享库占用的内存) PSS - P ...

  7. 【Android手机测试】linux内存管理 -- 一个进程占多少内存?四种计算方法:VSS/RSS/PSS/USS

    在Linux里面,一个进程占用的内存有不同种说法,可以是VSS/RSS/PSS/USS四种形式,这四种形式首字母分别是Virtual/Resident/Proportional/Unique的意思. ...

  8. RSA签名的PSS模式

    本文由云+社区发表 作者:mariolu 一.什么是PSS模式? 1.1.两种签名方式之一RSA-PSS PSS (Probabilistic Signature Scheme)私钥签名流程的一种填充 ...

  9. Linux内存管理 一个进程究竟占用多少空间?-VSS/RSS/PSS/USS

    关键词:VSS.RSS.PSS.USS._mapcount.pte_present.mem_size_stats. 在Linux里面,一个进程占用的内存有不同种说法,可以是VSS/RSS/PSS/US ...

随机推荐

  1. Ubuntu/CentOS下编译Nginx最基本参数

    Ubuntu/CentOS下编译Nginx安装基本参数,做个记录: groupadd www useradd -g www www ./configure --user=www --group=www ...

  2. special points about git

    1 about "origin/master tracks the remote branch" 1.1 what does tracking mean? after " ...

  3. There are two different types of export, named and default

    export - JavaScript | MDN https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statemen ...

  4. svn服务的安装和使用

    更新linux软件库 cat /etc/redhat-release wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.c ...

  5. 【题解】T54037 最开始

    传送门 题目大意: 对于\(a+ \frac 1{a^{}}=n\)求$a^{m}+ \frac 1{a^{m}} $,对\(10^9+7\)取模. 题目做法: 乍看此题,没有思路,但是如果用数学办法 ...

  6. 如何在ubuntun中安装pycharm并将图标显示在桌面上

    安装pycharm首先要安装jdk. 可以通过java -V来查看是否安装了jdk.安装jdk的方法如下: 1 首先在oracle网站下载jdk,现在jdk是1.8的. 2 新建一个/usr/lib/ ...

  7. struts 与 Java Web应用简介

    struts实质上就是JSP Model2的基础上实现的MVC框架. 在Struts框架中,模型有实现业务逻辑的JavaBean或EJB组件构成 视图由一组JSP文件构成. 控制器 控制器由Actio ...

  8. JavaScript学习笔记(持续更新)

    函数有“定义式”和“变量式”两种写法的区别 函数有“定义式”和“变量式”两种写法,两者基本区别不大.主要区别在于,如果在同一个代码块(Script标签对)定义两个同名的函数,浏览器在预编译代码时,使用 ...

  9. opencv操作相机相关函数

    1.基本操作 capture = cv2.VideoCapture(0) ret, image = capture.read() cv2.imwrite("photo.jpg", ...

  10. 【zabbix】微信告警消息模版

    下面给出了一个zabbix微信告警消息的模版, 消息最后加上#号和短横线的设计有两个原因: 1,zabbix的微信告警消息总是被截断,比如最后一个告警时间,如果没有最后一行#号,在微信上看的时候时间不 ...