洛谷链接:https://www.luogu.org/problemnew/show/P4438

道路

题目描述

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

W 国的国王小 W 获得了一笔资金,他决定用这笔资金来改善交通。由于资金有限,小 W 只能翻修n−1" role="presentation" style="position: relative;">n−1n−1n−1条道路。小 W 决定对每个城市翻修恰好一条通向它的道路,即从公路和铁 路中选择一条并进行翻修。小 W 希望从乡村通向城市可以尽可能地便利,于是根据人口调 查的数据,小 W 对每个乡村制定了三个参数,编号为iii的乡村的三个参数是ai" role="presentation" style="position: relative;">aiaia_i,bibib_i和cicic_i。假设 从编号为iii的乡村走到首都一共需要经过x" role="presentation" style="position: relative;">xxx条未翻修的公路与yyy条未翻修的铁路,那么该乡村的不便利值为

ci⋅(ai+x)⋅(bi+y)" role="presentation">ci⋅(ai+x)⋅(bi+y)ci⋅(ai+x)⋅(bi+y)

c_i \cdot (a_i + x) \cdot (b_i + y)

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

输入输出格式
输入格式:

第一行为正整数nnn 。

接下来n−1" role="presentation" style="position: relative;">n−1n−1n−1行,每行描述一个城市。其中第iii行包含两个数si,ti" role="presentation" style="position: relative;">si,tisi,tis_i,t_i。sisis_i表示通向第iii座城市的公路的起点,ti" role="presentation" style="position: relative;">titit_i表示通向第iii座城市的铁路的起点。如果si>0" role="presentation" style="position: relative;">si>0si>0s_i > 0,那么存在一条从第sisis_i座城 市通往第iii座城市的公路,否则存在一条从第−si" role="presentation" style="position: relative;">−si−si-s_i个乡村通往第iii座城市的公路;ti" role="presentation" style="position: relative;">titit_i类似地,如果ti>0ti>0t_i > 0,那么存在一条从第titit_i座城市通往第iii座城市的铁路,否则存在一条从第−ti" role="presentation" style="position: relative;">−ti−ti-t_i个乡村通 往第iii座城市的铁路。

接下来n" role="presentation" style="position: relative;">nnn行,每行描述一个乡村。其中第iii行包含三个数ai,bi,ci" role="presentation" style="position: relative;">ai,bi,ciai,bi,cia_i,b_i,c_i,其意义如题面所示。

输出格式:

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

输入输出样例
输入样例#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。

对于编号≤4≤4 \le 4的数据,n≤20n≤20n \le 20;

对于编号为5 ∼ 8的数据,ai,bi,ci≤5ai,bi,ci≤5a_i,b_i,c_i \le 5,n≤50n≤50n \le 50;

对于编号为9 ∼ 12的数据,n≤2000n≤2000n \le 2000;

对于所有的数据,n≤20000n≤20000n \le 20000,1≤ai,bi≤601≤ai,bi≤60 1 \le a_i,b_i \le 60,1≤ci≤1091≤ci≤1091 \le c_i \le 10^9,si,tisi,tis_i,t_i是[−n,−1]∪(i,n−1][−n,−1]∪(i,n−1] [-n,-1] \cup (i,n - 1]内的整数,任意乡村可以通过不超过40条道路到达首都。

Luogu4438[HNOI/AHOI2018] 道路相关推荐

  1. luogu P4438 [HNOI/AHOI2018]道路

    题目传送门:https://www.luogu.org/problemnew/show/P4438 题意: 有n-1个点为城市,n-1个点为农村,每个城市连出两种道路,一边为公路,一边为铁路.现在每一 ...

  2. 洛谷4438 [HNOI/AHOI2018]道路

    标签:树形DP 题目 题目传送门 题目描述 W 国的交通呈一棵树的形状.W 国一共有n−1n - 1n−1个城市和nnn个乡村,其中城市从111到n−1n - 1n−1 编号,乡村从111到nnn编号 ...

  3. Luogu 4438 [HNOI/AHOI2018]道路

    $dp$. 这道题最关键的是这句话: 跳出思维局限大胆设状态,设$f_{x, i, j}$表示从$x$到根要经过$i$条公路,$j$条铁路的代价,那么对于一个叶子结点,有$f_{x, i, j} = ...

  4. BZOJ5290 洛谷4438:[HNOI/AHOI2018]道路——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=5290 https://www.luogu.org/problemnew/show/P4438 的确 ...

  5. P4438 [HNOI/AHOI2018]道路

    这题倒是在树形dp的基础上添加了一些操作,但是做好预处理之后跟模板就差不多了 #include<cstdio> #include<cstring> #define neko 1 ...

  6. [HNOI 2014]道路堵塞

    Description A国有N座城市,依次标为1到N.同时,在这N座城市间有M条单向道路,每条道路的长度是一个正整数.现在,A国 交通部指定了一条从城市1到城市N的路径,并且保证这条路径的长度是所有 ...

  7. HNOI/AHOI2018题解

    作为一名高二老年选手来补一下我省去年的省选题. D1T1:寻宝游戏 按顺序给出\(n\)个\(m\)位的二进制数\(a_i\),再在最前方添一个\(0\), 给出\(q\)次询问,每次询问给出一个同样 ...

  8. BZOJ5286:[HNOI/AHOI2018]转盘——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=5286 https://www.luogu.org/problemnew/show/P4425 ht ...

  9. BZOJ5289 洛谷4437:[HNOI/AHOI2018]排列——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=5289 https://www.luogu.org/problemnew/show/P4437 考虑 ...

  10. BZOJ5286 HNOI/AHOI2018转盘(分块/线段树)

    显然最优走法是先一直停在初始位置然后一次性走完一圈.将序列倍长后,相当于找一个长度为n的区间[l,l+n),使其中ti+l+n-1-i的最大值最小.容易发现ti-i>ti+n-(i+n),所以也 ...

最新文章

  1. 快速整理excel_3小时整理了33个excel动图技巧,能快速提高工作效率,收藏备用吧...
  2. abb变频器如何就地增加频率_abb变频器报接地故障如何处理,故障原因分析
  3. java executebatch_JDBC批量执行executeBatch
  4. HDU 1166 敌兵布阵(线段树单点加区间查询)
  5. android集成测试工具,android – 集成测试和Cucumber测试
  6. android样式文件,Android学习笔记样式资源文件
  7. delphi对比易语言_delphi 2007 vs E语言 vs C#运行速度 - Delphi编程
  8. ajaxSubmit的data属性
  9. JS中var、let、const区别? 用3句话概括
  10. tomcat9无法登陆控制界面
  11. BizTalk学习笔记系列之四: BizTalk功能介绍
  12. DB2数据库下载(v9.7/v10.5/v11.1)
  13. java调用百度地图api,展示世界地图
  14. 人脉就是钱脉,培养人脉的100个技巧。。。
  15. C++入门:构造函数,析构函数,拷贝构造函数,运算符重载详解
  16. 波束和BSS问题中的gevd
  17. 去年一个百万级的小软件项目经验分享,20来个功能模块,项目不太好做有些棘手
  18. 简述FE2.1-USB2.0一托七应用及设计要点
  19. orange pi php,在OrangePi Zero上使用Lighttpd+SQLite+PHP7搭建OwnCloud
  20. KVM-2、虚拟化基础

热门文章

  1. jsp中使用jsp:include /在切换tomcat版本时遇到的问题
  2. java类路径定制_设置Java类路径的注意事项
  3. java 解析 svg_如何解析Java / Android中的SVG?
  4. 关于for循环的javascript习题
  5. 001_JavaScript数组常用方法总结及使用案例
  6. [USACO07DEC]道路建设Building Roads
  7. Info.plist中 各字段详解
  8. 代码管理工具之git的学习
  9. 让你的AIR程序自动检测更新,并自动下载、更新到新版本。
  10. ErrorPageRegistrar根据不同的错误类型显示网页