tyvj1391走廊泼水节
题目: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走廊泼水节的更多相关文章
- tyvj1391走廊泼水节——kruskal
题目:http://www.joyoi.cn/problem/tyvj-1391 大意就是把一个树扩充成一个完全图,并且图中最小生成树仍是原来的树. 思路很巧妙,把边按权值从小到大排序,然后模拟加边的 ...
- [TYVJ1391]走廊泼水节
Description 话说,中中带领的OIER们打算举行一次冬季泼水节,当然这是要秘密进行的,绝对不可以让中中知道.不过中中可是老江湖了,当然很快就发现了我们的小阴谋,于是他准备好水枪迫不及待的想要 ...
- [tyvj-1391]走廊泼水节 最小生成树
做克鲁斯卡尔的时候维护一个并查集即可. #include <iostream> #include <cstdio> #include <cstring> #incl ...
- CH6201 走廊泼水节【最小生成树】
6201 走廊泼水节 0x60「图论」例题 描述 [简化版题意]给定一棵N个节点的树,要求增加若干条边,把这棵树扩充为完全图,并满足图的唯一最小生成树仍然是这棵树.求增加的边的权值总和最小是多少. 我 ...
- [Tvvj1391]走廊泼水节(最小生成树)
[Tvvj1391]走廊泼水节 Description 给定一棵N个节点的树,要求增加若干条边,把这棵树扩充为完全图,并满足图的唯一最小生成树仍然是这棵树.求增加的边的权值总和最小是多少. 完全图:完 ...
- 「CH6201」走廊泼水节
「CH6201」走廊泼水节 传送门 考虑 \(\text{Kruskal}\) 的过程以及用到一个最小生成树的性质即可. 在联通两个联通块时,我们肯定会选择最小的一条边来连接这两个联通块,那么这两个联 ...
- 奇葩最小生成树--->走廊泼水节(tyvj1391)
题目描述 话说,中中带领的OIER们打算举行一次冬季泼水节,当然这是要秘密进行的,绝对不可以让中中知道.不过中中可是老江湖了,当然很快就发现了我们的小阴谋,于是他准备好水枪迫不及待的想要加入我们了. ...
- P1391 走廊泼水节
时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 话说,中中带领的OIER们打算举行一次冬季泼水节,当然这是要秘密进行的,绝对不可以让中中知道.不过中中可是老 ...
- CH 6021 走廊泼水节
描述 [简化版题意]给定一棵N个节点的树,要求增加若干条边,把这棵树扩充为完全图,并满足图的唯一最小生成树仍然是这棵树.求增加的边的权值总和最小是多少. 我们一共有N个OIER打算参加这个泼水节,同时 ...
随机推荐
- 线程同步,条件变量pthread_cond_wait
与互斥锁不同,条件变量是用来等待而不是用来上锁的.条件变量用来自动阻塞一个线程,直到某特殊情况发生为止.条件变量使我们可以睡眠等待某种条件出现.条件变量是利用线程间共享的全局变量进行同步的一种机制,主 ...
- spring boot 学习(七)小工具篇:表单重复提交
注解 + 拦截器:解决表单重复提交 前言 学习 Spring Boot 中,我想将我在项目中添加几个我在 SpringMVC 框架中常用的工具类(主要都是涉及到 Spring AOP 部分知识).比如 ...
- 前端:jQuery笔记
前端:jQuery笔记 此系列文章乃是学习jQuery的学习笔记. Asp.net MVC Comet推送 摘要: 一.简介 在Asp.net MVC实现的Comet推送的原理很简单. 服务器端:接收 ...
- bzoj1621
题解: 简单判断一下怎么分 如果分的话继续递归 代码: #include<bits/stdc++.h> using namespace std; int n,k; int js(int x ...
- 纪念第一次ak。。。
1.MM的数学作业 [题目大意] 今天,MM在上数学课,数学课的主题是函数.讲完以后老师留了一个家庭作业,让同学们回家思考.题目如下: 定义一个函数,F(x)表示x转成二进制后,二进制中“1”的个数. ...
- AnsiStartsStr 和 空字符串
function AnsiStartsStr(const ASubText, AText: string): Boolean; begin Result := AnsiSameStr(ASubText ...
- python 抓取request信息,各种cookie,user-agent类的信息,只调试到http可以抓取,https貌似不行。
import pcap # 安装的是pypcap,本博客有安装方法,不过也比较乱,试试吧.import dpktimport socketimport datetime def sniffer(str ...
- SharePoint 2013的100个新功能之内容管理(一)
一:拖拽 现在在任意的文档库中,你可以拖拽文档到文档库区域,它会以进度条显示上传到文档库中.第一步鼠标点击文档拖动到文档库区域时,它会变成"拖到此处",第二步放开鼠标,上传. 二: ...
- REST easy with kbmMW #14 – DB Controlled login
介绍 关于如何使用授权和登录管理来构建应用服务器还存在一些问题,其中之一就是用户及其角色如何在在数据库中定义.该文将解释使用TkbmMWAuthorizationManager解决此问题的一种方法.有 ...
- Myecilpse web +tomcat 项目: JSP在mysql中创建表
<%@ page language="java" import="java.util.*" import="com.mysql.jdbc.Dri ...