Description

  LongDD 变得非常懒, 他不想再继续维护供员工之间供通行的道路. 道路被用来连接 N(5 <= N <= 10,000)个房子, 房子被连续地编号为 1..N. 每一个房子都是一个员工的家. LongDD 计划除去 P(N-1 <= P <= 100,000)条道路中尽可能多的道路, 但 是还要保持房子之间的连通性. 你首先要决定那些道路是需要保留的 N-1 条道路.

  第 j 条双向道路连接了房子 S_j 和 E_j (1 <= S_j <= N; 1 <= E_j <=
N; S_j != E_j), 而且走完它需要 L_j (0 <= L_j <= 1,000)的时间.没有两个房子是被一条以上的道 路所连接.


  员工们非常伤心, 因为她们的交通系统被削减了. 你需要到每一个员工的住处去安 慰她们. 每次你到达第 i 个房子的时候(即使你已经到过),
你必须花去 C_i (1 <= C_i <= 1,000)的时间和员工交谈.


  你需要从某一个房子出发(这是供你选择的),并最终回到这个房子。期间,你要经
过每个房子至少一次,并且当你经过某个房子的时候,你必须和这个房子里的员工 交谈(即使你已经到过).

  假设 LongDD 采纳了你的建议,
请计算出使所有员工都被安慰的最少时间.

Input

* 第 1 行: 用空格隔开的两个整数 N 和 P
* 第 2..N+1
行: 第 i+1 行包含了一个整数: C_i
* 第 N+2..N+P+1 行: 第 N+j+1 行包含用空格隔开的三个整数: S_j, E_j 和
L_j

Output

* 第 1 行: 一个整数, 所需要的总时间(包含和在你所在的房子的员工的两次谈话
时间).

Sample Input

5 7
10
10
20
6
30
1 2 5
2 3 5
2 4 12
3 4 17
2 5 15
3 5 6
4 5 12

Sample Output

176

如果不考虑对每家每户的访问时间 也不考虑要往返的时间
则这题是一个最小生成树模板题
接下来考虑影响
我们对每条边的权值变成两倍再加上其两端点访问距离
再求最小生成树
贴代码

#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std; int n,m;
struct edge
{
int u,v,l;
}a[100010];
int f[10010],c[10010]; int cmp(const void *a,const void *b)
{
return (((edge*)a)->l < ((edge*)b)->l ? -1 : 1);
} void read()
{
scanf("%d%d",&n,&m);
for (int i=1; i<=n; i++)
scanf("%d",&c[i]),f[i]=i; for (int i=0; i<m; i++)
{
scanf("%d%d%d",&a[i].u,&a[i].v,&a[i].l);
a[i].l<<=1;
a[i].l+=c[a[i].v]+c[a[i].u];
} qsort(a,m,sizeof(a[0]),cmp);
} int find(int x)
{
if (x == f[x]) return f[x];
return (f[x]=find(f[x]));
} void together(int u,int v)
{
int x=find(u),y=find(v);
f[x]=f[y];
} void kruscal()
{
int ans=0x7ffffff,x=0;
for (int i=1; i<=n; i++)
f[i]=i,ans=min(ans,c[i]); for (int i=0; i<m; i++)
{
if (find(a[i].u) == find(a[i].v)) continue;
together(a[i].u,a[i].v);
ans+=a[i].l;
x++;
if (x == n-1) break;
} printf("%d\n",ans);
} int main()
{
read();
kruscal();
return 0;
}

 

【贾志豪NOIP模拟题】慰问员工 cheer 【最小生成树】【对边权值的一些处理】的更多相关文章

  1. 【入门OJ】2003: [Noip模拟题]寻找羔羊

    这里可以复制样例: 样例输入: agnusbgnus 样例输出: 6 这里是链接:[入门OJ]2003: [Noip模拟题]寻找羔羊 这里是题解: 题目是求子串个数,且要求简单去重. 对于一个例子(a ...

  2. NOIP模拟题汇总(加厚版)

    \(NOIP\)模拟题汇总(加厚版) T1 string 描述 有一个仅由 '0' 和 '1' 组成的字符串 \(A\),可以对其执行下列两个操作: 删除 \(A\)中的第一个字符: 若 \(A\)中 ...

  3. 9.9 NOIP模拟题

    9.9 NOIP模拟题 T1 两个圆的面积求并 /* 计算圆的面积并 多个圆要用辛普森积分解决 这里只有两个,模拟计算就好 两圆相交时,面积并等于中间两个扇形面积减去两个三角形面积 余弦定理求角度,算 ...

  4. 8.22 NOIP 模拟题

      8.22 NOIP 模拟题 编译命令 g++ -o * *.cpp gcc -o * *.c fpc *.pas 编译器版本 g++/gcc fpc 评测环境 位 Linux, .3GHZ CPU ...

  5. NOIP模拟题17.9.26

    B 君的任务(task)[题目描述]与君初相识,犹如故人归.B 君看到了Z 君的第一题,觉得很难.于是自己出了一个简单题.你需要完成n 个任务,第i 任务有2 个属性ai; bi.其中ai 是完成这个 ...

  6. 一些noip模拟题一句话题解

    Problem A: 序列 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 12  Solved: 9[Submit][Status][Web Boar ...

  7. noip模拟题题解集

    最近做模拟题看到一些好的题及题解. 升格思想: 核电站问题 一个核电站有N个放核物质的坑,坑排列在一条直线上.如果连续M个坑中放入核物质,则会发生爆炸,于是,在某些坑中可能不放核物质. 任务:对于给定 ...

  8. NOIP 模拟题

    目录 T1 : grid T2 : ling T3 : threebody 数据可私信我. T1 : grid 题目:在一个\(n*n\)的方格中,你只能斜着走.为了让问题更简单,你还有一次上下左右走 ...

  9. 9.22 NOIP模拟题

    吉林省信息学奥赛 2017 冬令营                                                                                    ...

随机推荐

  1. Go语言核心36讲(Go语言进阶技术七)--学习笔记

    13 | 结构体及其方法的使用法门 我们都知道,结构体类型表示的是实实在在的数据结构.一个结构体类型可以包含若干个字段,每个字段通常都需要有确切的名字和类型. 前导内容:结构体类型基础知识 当然了,结 ...

  2. leetcode 5/300 最长回文子串 py

    目录 题目说明 方法一:动态规划--状态转移方程 方法二:优化中心扩展算法 题目说明 要看明白求得是什么,最长回文字串是指例如cababa中ababa是最长的,不是求回文的部分aba 方法一:动态规划 ...

  3. IDEA 激活码,最新激活码,亲测有效,持续更新(2021.10.26)

    这里整理了一份 IntelliJ IDEA的最新激活码,持续更新 获取链接:[腾讯文档]分享白嫖JB Account和激活码(并附带破解工具) https://docs.qq.com/doc/DVnB ...

  4. zlib开发笔记(四):zlib库介绍、编译windows vs2015x64版本和工程模板

    前言   Qt使用一些压缩解压功能,介绍过libzip库编译,本篇说明zlib库.需要用到zlib的msvc2015x64版本,编译一下.   版本编译引导 zlib在windows上的mingw32 ...

  5. 软工博客之关于CSDN的移动端软件测评

    关于CSDN的移动端软件测评 项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 软件测评作业 我在这个课程的目标 不求变强,只求做好,成为一颗有用的 ...

  6. VS2017+QT5.12.10+QGIS3.16环境搭建及开发全流程

    题记:大力发展生产力,助力高效采集.(转载请注明出处https://www.cnblogs.com/1024bytes/p/15477374.html) 本篇随笔分为五个部分: 一.获取QGIS3.1 ...

  7. 图像原始格式(YUV444 YUV422 YUV420)一探究竟

    前段时间搞x264编码测试,传参的时候需要告诉编码器我的原始数据格式是什么,其中在x264.h头文件中定义了如下一堆类型. /* Colorspace type */ #define X264_CSP ...

  8. Python 模块 itertools

    python 2.6 引入了itertools模块,使得排列组合的实现非常简单: import itertools 有序排列:e.g., 4个数内选2个排列: >>> print l ...

  9. CentOS7 导入oracle数据

    1.切换到 oracle用户 #su - oracle 2.导入(一般的不会导入到sys账号下) #imp sys/密码@orcl file=/home/oracle/20200428.dmp fro ...

  10. topk算法

    方法一 堆排序 自建堆 heapMax方法,从上至下调整堆 pop时,可以使用自上而下调整堆,调用heapMax(arr,0,sz-1); push时,需要自下到上调整即 从上到下调整: void h ...