牛客练习赛69 C

2023-11-05

题意: 给定 n n n m m m边,让你确定一个大小为 n n n的排列使得 ∑ i = 2 n d i s ( a i − 1 , a i ) \sum_{i=2}^n dis(a_{i-1},a_i) i=2ndis(ai1,ai)最大。
数据范围: 1 ≤ m ≤ 5 × 1 0 5 , 1 ≤ u , v ≤ n , 1 ≤ w ≤ 1 0 9 1\leq m\leq 5\times 10^5, 1\leq u,v\leq n, 1\leq w\leq 10^9 1m5×105,1u,vn,1w109,保证图是联通的

题解: 本题考虑一个问题,即要想求图中两点的所有路径中的最大值,那么我们在选择排列的时候,就从边权最大的开始递减构造,将这两个点放一块,那么这两个点就一定是选择边权当前可选择的最大值了。这里就想到了生成树,构造一个最大生成树即可。

题解:

#include<bits/stdc++.h>
using namespace std;

const int N = 5e5 + 10;
const int M = N << 1;
int n, m;

struct Node{
	int a, b, c;
	bool operator < (const Node &A) const {
		return c > A.c;
	}
}p[N];

int f[N];
int find(int x) {
	if(x != f[x]) f[x] = find(f[x]);
	return f[x];
} 

int main()
{
	scanf("%d%d", &n, &m);
	for(int i = 1; i <= n; i++) f[i] = i;
	for(int i = 1; i <= m; i++) {
		int a, b, c;
		scanf("%d%d%d", &a, &b, &c);
		p[i] = {a, b, c};
	} 
	
	sort(p + 1, p + m + 1);
	long long res = 0;
	for(int i = 1; i <= m; i++) {
		int a = p[i].a, b = p[i].b, c = p[i].c;
		a = find(a), b = find(b);
		if(a != b) {
			f[a] = b;
			res += c;
		}
	}
	
	printf("%lld\n", res);
	
	return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

牛客练习赛69 C 的相关文章

  • 使用aircrack-ng套件破解wifi密码

    一 准备工作 1 需要有一个无线网卡 需要支持monitor模式 2 Kali系统 自行单独安装套件也可以 3 一个完善的密码字典 二 监听工作 首先将无线网卡连接到kali iwconfig 查看是否连接成功 airmon ng 可以查看
  • Vim 小技巧:自动写入文件头

    Vim 小技巧 情景一 自动写入文件头 在编写 C 程序时 总有一些东西会在每个头文件中出现 比如 ifndef lt File Name MACRO gt define lt File Name MACRO gt endif lt Fil
  • STM32H7 LwIP 主RAM选择 DTCM AXIRAM UDP 收发问题

    STM32H7 LwIP 主RAM选择 DTCM AXIRAM UDP 这段时间一直在调试STM32H743 期间掉进了不少坑 最大的坑还是网络这一块 例如LwIP移植 已经有前人踩过的坑 我以为我能避免 结果自己还是踩了 耽误了不少时间
  • Android --- 控件属性的属性值为 @null

    1 控件属性值为 null 1 RadioButton里面的属性android button null 是去掉前面的圆点 2 android background null 是控件自带的背景设为空
  • 《深入浅出数据分析》第九章——R语言

    文章目录 记录第一次接触R语言 一 R语言下载安装 二 运行 三 补充 1 加载csv文件 2 hist函数 记录第一次接触R语言 深入浅出数据分析 第九章讲到R语言 在这记录一下 就当给自己做的笔记 一 R语言下载安装 安装地址 http
  • mybatis是如何集成到spring的之托管mapper接口

    前言 mybatis集成到spring可以参考spring mvc集成mybatis进行数据库访问 其中mybatis集成到spring最重要的两个配置分别是SqlSessionFactoryBean和MapperScannerConfig
  • C++学习(七十四)有关三维压缩库draco

    一 是什么 Draco是谷歌Chrome 媒体团队在2017年1月发布的一个3D图形开源压缩库 提供了多种算法进行压缩和解压缩 旨在大幅加速 3D 数据的编码 传输和解码 因为研发团队的 Chrome 背景 这个开源算法的首要应用对象是浏览

随机推荐