MZ Training 2014 #8 F题

2023-10-25 13:50
文章标签 training 2014 mz

本文主要是介绍MZ Training 2014 #8 F题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这个题啊。。。先上题吧。

[Description]

有n个点,m条边,现在要用这些来建立一颗以1号点为根的圣诞树

对于每一个点有一个点权w, 每条边也有一个边权c

对于一棵树的代价,我们这样计算(具体可以看看样例解释):

代价=每个点的代价和

一个点的代价=这个点及它的所有后代节点点权之和乘以指向它的边的边权。

[Input]

第一行一个整数T,表示T组数据

对于每组数据,第一行两个整数n和m

第二行n个整数wi,每个点的点权

接下来m行,每行三个整数a b c,表示a和b之间有一条边权为c的无向边

 

[Output]

对于每组数据输出一行,即最小的代价Total

如果不能组成一棵树,则输出 “ No Answer ”

 

[Sample Input]

2

2 1

1 1

1 2 15

7 7

200 10 20 30 40 50 60

1 2 1

2 3 3

2 4 2

3 5 4

3 7 2

3 6 3

1 5 9

 

[Sample Output]

15

1210

 


[Hint]

0 <= n, m <= 50000

所有的数都小于216 

 

对于样例2,我们不用1 5 9这一条边,那么建出来的树如图所示

其代价计算

1号点:(200 + 10 + 20 + 30 + 40 + 50 + 60) * 0 = 0

2号点:(10 + 20 + 30 + 40 + 50 + 60) * 1 = 210

3号点:(20 + 40 + 50 + 60) * 3 = 510

4号点:30 * 2 = 60

5号点:40 * 4 = 160

6号点:60 * 2 = 120

7号点:50 * 3 = 150

Total = 0 + 210 + 510 + 60 + 160 + 120 + 150 = 1210

那么这个问题是可以简化的。

对于指向某个节点的一条边,它的后代必然会参与计算这条边。所以某个点的点权就会被从根(1)到它的所有边计算一次。为什么不以每个子节点为计算单位呢?

这TM不就是对每个点求最短路吗?

好了,答案出来了,就是这个。

n为点的个数;dis[i]为1到这个点的最短路;w[i]为这个点的点权。

注意:

①:判断无解(出现不连通)

②:最坏情况答案 49999*65536=3276734464,所以dis[]数组要开long long;

③:初值必须够大,但要注意:不能用memset,因为它不能赋超int的初值;

也不能这样写:for(int i=1;i<=n;i++) dis[i]=4000000000;

而要这样写:for(int i=1;i<=n;i++) dis[i]=4000000000LL;

加的“LL”表示这个常量是long long 的;

④:人品要好!大笑


这篇关于MZ Training 2014 #8 F题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/283012

相关文章

ZOJ Monthly, August 2014小记

最近太忙太忙,只能抽时间写几道简单题。不过我倒是明白要想水平提高不看题解是最好的了。 A  我只能死找规律了,无法证明 int a[50002][2] ;vector< vector<int> > gmax , gmin ;int main(){int n , i , j , k , cmax , cmin ;while(cin>>n){/* g

2014 Multi-University Training Contest 8小记

1002 计算几何 最大的速度才可能拥有无限的面积。 最大的速度的点 求凸包, 凸包上的点( 注意不是端点 ) 才拥有无限的面积 注意 :  凸包上如果有重点则不满足。 另外最大的速度为0也不行的。 int cmp(double x){if(fabs(x) < 1e-8) return 0 ;if(x > 0) return 1 ;return -1 ;}struct poin

2014 Multi-University Training Contest 7小记

1003   数学 , 先暴力再解方程。 在b进制下是个2 , 3 位数的 大概是10000进制以上 。这部分解方程 2-10000 直接暴力 typedef long long LL ;LL n ;int ok(int b){LL m = n ;int c ;while(m){c = m % b ;if(c == 3 || c == 4 || c == 5 ||

2014 Multi-University Training Contest 6小记

1003  贪心 对于111...10....000 这样的序列,  a 为1的个数,b为0的个数,易得当 x= a / (a + b) 时 f最小。 讲串分成若干段  1..10..0   ,  1..10..0 ,  要满足x非递减 。  对于 xi > xi+1  这样的合并 即可。 const int maxn = 100008 ;struct Node{int

Post-Training有多重要?一文带你了解全部细节

1. 简介 随着LLM学界和工业界日新月异的发展,不仅预训练所用的算力和数据正在疯狂内卷,后训练(post-training)的对齐和微调方法也在不断更新。InstructGPT、WebGPT等较早发布的模型使用标准RLHF方法,其中的数据管理风格和规模似乎已经过时。近来,Meta、谷歌和英伟达等AI巨头纷纷发布开源模型,附带发布详尽的论文或报告,包括Llama 3.1、Nemotron 340

2014年暑假培训 - 数论

A银河上的星星 /**************************************************************     Problem: 1014     User: DoubleQ     Language: C++     Result: Accepted     Time:190 ms     Memor

2014暑假集训搜索专题

A - 漫步校园 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Status Description LL最近沉迷于AC不能自拔,每天寝室、机房两点一线。由于长时间坐在电脑边,缺乏运动。他决定充分利用每次从寝室到机房的时间,在校园里散散步。整个HDU校园呈方形布局,可划

[置顶] 2014训练计划进阶版

动态规划: 区间dp,树状dp,数位dphdu3555, sgu258, sgu390  队列优化: zoj3399 最小表示法的状态压缩DP: spoj2159  专题链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=38881#overview 专题链接: http://acm.hust.edu.cn/vjudg

[置顶] 2014训练计划

每个专题结束后会有5小时的专题赛~ 1、hustOJ目前支持谷歌、火狐浏览器等部分浏览器。 2、欢迎吐槽~ 3、推荐该阶段用书(以下具体算法实现多数可在此书中找到详解):算法竞赛入门经典之训练指南(刘汝佳) 4、题解报告:专题中的题目多是经典题目,百度搜索即有详细解答~ 5、专题相关知识点红字标出,建议先百度红字部分,有助于专题学习~ 6、专题时间会在"ACM 今天你AC了吗?"(12

2014级寒假特训之并查集专题

Problem A: Double和XXZ的生日宴请 Time Limit: 1 Sec   Memory Limit: 128 MB Submit: 9   Solved: 7 [ Submit][ Status][ Web Board] [ Edit] [ TestData] Description Double 和 XXZ同一天生日,他们俩30岁生日那天,当年