博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
P4438 [HNOI/AHOI2018]道路
阅读量:5291 次
发布时间:2019-06-14

本文共 2482 字,大约阅读时间需要 8 分钟。

题目描述

W 国的交通呈一棵树的形状。W 国一共有n - 1n1个城市和nn个乡村,其中城市从11到n - 1n1 编号,乡村从11到nn编号,且11号城市是首都。道路都是单向的,本题中我们只考虑从乡村通往首都的道路网络。对于每一个城市,恰有一条公路和一条铁路通向这座城市。对于城市i, 通向该城市的道路(公路或铁路)的起点,要么是一个乡村,要么是一个编号比ii大的城市。 没有道路通向任何乡村。除了首都以外,从任何城市或乡村出发只有一条道路;首都没有往 外的道路。从任何乡村出发,沿着唯一往外的道路走,总可以到达首都。

W 国的国王小 W 获得了一笔资金,他决定用这笔资金来改善交通。由于资金有限,小 W 只能翻修n - 1n1条道路。小 W 决定对每个城市翻修恰好一条通向它的道路,即从公路和铁 路中选择一条并进行翻修。小 W 希望从乡村通向城市可以尽可能地便利,于是根据人口调 查的数据,小 W 对每个乡村制定了三个参数,编号为ii的乡村的三个参数是a_iaib_ibic_ici。假设 从编号为ii的乡村走到首都一共需要经过xx条未翻修的公路与yy条未翻修的铁路,那么该乡村 的不便利值为

c_i \cdot (a_i + x) \cdot (b_i + y)ci(ai+x)(bi+y)

在给定的翻修方案下,每个乡村的不便利值相加的和为该翻修方案的不便利值。 翻修n - 1n1条道路有很多方案,其中不便利值最小的方案称为最优翻修方案,小 W 自然 希望找到最优翻修方案,请你帮助他求出这个最优翻修方案的不便利值。

输入格式

第一行为正整数nn。

接下来n - 1n1行,每行描述一个城市。其中第ii行包含两个数s_i,t_isi,tis_isi表示通向第ii座城市 的公路的起点,t_iti表示通向第i座城市的铁路的起点。如果s_i > 0si>0,那么存在一条从第s_isi座城 市通往第ii座城市的公路,否则存在一条从第-s_isi个乡村通往第i座城市的公路;t_iti类似地,如 果t_i > 0ti>0,那么存在一条从第t_iti座城市通往第i座城市的铁路,否则存在一条从第-t_iti个乡村通 往第ii座城市的铁路。

接下来nn行,每行描述一个乡村。其中第i行包含三个数a_i,b_i,c_iai,bi,ci,其意义如题面所示。

输出格式

输出一行一个整数,表示最优翻修方案的不便利值。

输入输出样例

输入 #1复制
6 2 3 4 5 -1 -2 -3 -4 -5 -6 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1
输出 #1复制
54
输入 #2复制
9 2 -2 3 -3 4 -4 5 -5 6 -6 7 -7 8 -8 -1 -9 1 60 1 1 60 1 1 60 1 1 60 1 1 60 1 1 60 1 1 60 1 1 60 1 1 60 1
输出 #2复制
548
输入 #3复制
12 2 4 5 3 -7 10 11 9 -1 6 8 7 -6 -10 -9 -4-12 -5 -2 -3 -8 -11 53 26 491 24 58 190 17 37 356 15 51 997 30 19 398 3 45 27 52 55 838 16 18 931 58 24 212 43 25 198 54 15 172 34 5 524
输出 #3复制
5744902

说明/提示

【样例解释 1】

如图所示,我们分别用蓝色、黄色节点表示城市、乡村;用绿色、红色箭头分别表示 公路、铁路;用加粗箭头表示翻修的道路。

一种不便利值等于54的方法是:翻修通往城市2和城市5的铁路,以及通往其他城市的 公路。用→和⇒表示公路和铁路,用∗→和∗⇒表示翻修的公路和铁路,那么:

编号为1的乡村到达首都的路线为:-1 ∗→ 3 ⇒ 1,经过0条未翻修公路和1条未翻修铁 路,代价为3 × (1 + 0) × (2 + 1) = 9;

编号为2的乡村到达首都的路线为:-2 ⇒ 3 ⇒ 1,经过0条未翻修公路和2条未翻修铁 路,代价为2 × (1 + 0) × (3 + 2) = 10;
编号为3的乡村到达首都的路线为:-3 ∗→ 4 → 2 ∗→ 1,经过1条未翻修公路和0条未 翻修铁路,代价为3 × (2 + 1) × (1 + 0) = 9;
编号为4的乡村到达首都的路线为:-4 ⇒ 4 → 2 ∗→ 1,经过1条未翻修公路和1条未翻 修铁路,代价为1 × (2 + 1) × (3 + 1) = 12;
编号为5的乡村到达首都的路线为:-5 → 5 ∗⇒ 2 ∗→ 1,经过1条未翻修公路和0条未 翻修铁路,代价为2 × (3 + 1) × (1 + 0) = 8;
编号为6的乡村到达首都的路线为:-6 ∗⇒ 5 ∗⇒ 2 ∗→ 1,经过0条未翻修公路和0条未翻修铁路,代价为1 × (3 + 0) × (2 + 0) = 6;

总的不便利值为9 + 10 + 9 + 12 + 8 + 6 = 54。可以证明这是本数据的最优解。

【样例解释 2】

在这个样例中,显然应该翻修所有公路。

【数据范围】 一共20组数据,编号为1 ∼ 20。 对于编号\le 44的数据,n \le 20n20;

对于编号为5 ∼ 8的数据,a_i,b_i,c_i \le 5ai,bi,ci5,n \le 50n50;
对于编号为9 ∼ 12的数据,n \le 2000n2000;
对于所有的数据,n \le 20000n20000,1 \le a_i,b_i \le 601ai,bi60,1 \le c_i \le 10^91ci109,s_i,t_isi,ti[-n,-1] \cup (i,n - 1][n,1](i,n

转载于:https://www.cnblogs.com/xiongchongwen/p/11243470.html

你可能感兴趣的文章
Codeforces 962 /2错误 相间位置排列 堆模拟 X轴距离最小值 前向星点双连通分量求只存在在一个简单环中的边...
查看>>
Matrix快速幂 模板
查看>>
laravel command调用方法命令
查看>>
20162302 - 20162319 结对编程项目-四则运算(第一周)
查看>>
用python2和python3伪装浏览器爬取网页
查看>>
MySQL开启远程连接权限
查看>>
tomcat7.0.27的bio,nio.apr高级运行模式
查看>>
SAP HANA 三大特点
查看>>
C#预处理器命令
查看>>
苹果手表:大方向和谷歌一样,硬件分道扬镳
查看>>
ccf 出现次数最多的数
查看>>
单例模式
查看>>
Competing Consumers Pattern (竞争消费者模式)
查看>>
HDUOJ ------1398
查看>>
cf--------(div1)1A. Theatre Square
查看>>
Android面试收集录15 Android Bitmap压缩策略
查看>>
Tomcat 报错的解决方法:The APR based Apache Tomcat Native library which allows optimal
查看>>
最长公共子串问题(LCS)
查看>>
TortoiseSVN is locked in another working copy
查看>>
PHP魔术方法之__call与__callStatic方法
查看>>