zoukankan      html  css  js  c++  java
  • [HNOI2018]道路 --- 树形DP

    [HNOI2018]道路

    题目描述:

    W 国的交通呈一棵树的形状。W 国一共有 (n-1) 个城市和 (n) 个乡村,

    其中城市从 (1) 到 (n-1) 编号,乡村从 (1) 到 (n) 编号,且 (1) 号城市是首都。

    道路都是单向的,本题中我们只考虑从乡村通往首都的道路网络。

    对于每一个城市,恰有一条公路和一条铁路通向这座城市。

    对于城市(i), 通向该城市的道路(公路或铁路)的起点,要么是一个乡村,要么是一个编号比 (i) 大的城市。

    没有道路通向任何乡村。除了首都以外,从任何城市或乡村出发只有一条道路;

    首都没有往 外的道路。从任何乡村出发,沿着唯一往外的道路走,总可以到达首都。

    W 国的国王小 W 获得了一笔资金,他决定用这笔资金来改善交通。

    由于资金有限,小 W 只能翻修 (n-1) 条道路。

    小 W 决定对每个城市翻修恰好一条通向它的道路,即从公路和铁 路中选择一条并进行翻修。

    小 W 希望从乡村通向城市可以尽可能地便利,于是根据人口调 查的数据,

    小 W 对每个乡村制定了三个参数,编号为 (i) 的乡村的三个参数是 (a_{i} ; b_{i} ; c_{i} )

    假设 从编号为 (i) 的乡村走到首都一共需要经过 (x) 条未翻修的公路与 (y) 条未翻修的铁路,那么该乡村 的不便利值为

    (c_{i} * (a_{i} + x) * (b_{i} + y))

    在给定的翻修方案下,每个乡村的不便利值相加的和为该翻修方案的不便利值。

    翻修 (n-1) 条道路有很多方案,其中不便利值最小的方案称为最优翻修方案,

    小 W 自然 希望找到最优翻修方案,请你帮助他求出这个最优翻修方案的不便利值。

     

    输入格式: 

    第一行为正整数 (n)

    接下来 (n-1) 行,每行描述一个城市。其中第 (i) 行包含两个数 (s_{i};t_{i}) 。 

    (s_{i}) 表示通向第 (i) 座城市 的公路的起点, (t_{i}) 表示通向第(i)座城市的铁路的起点。

    如果 (s_{i} > 0) ,那么存在一条从第 (s_{i}) 座城 市通往第 (i) 座城市的公路,否则存在一条从第 (s_{i})个乡村通往第(i)座城市的公路;

     (t_{i}) 类似地,如 果 (t_{i}>0) ,那么存在一条从第 (t_{i}) 座城市通往第(i)座城市的铁路,否则存在一条从第 (t_{i}) 个乡村通 往第 (i) 座城市的铁路。

    接下来 (n) 行,每行描述一个乡村。

    其中第(i)行包含三个数 (a_{i};b_{i};c_{i}),其意义如题面所示。

     

    输出格式:

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

     

    改这题面真累。

    看起来就像个DP题。

    然后,可以发现是棵二叉树。。。

    先看数据估计状态,通过计算,发现(O(n*dep*dep))接近极限

    不妨设状态为(dp(i,j,k))

    表示对于(i)号节点而言,首都到它的路径存在(j)个公路和(k)个铁路的最小权值。

    不难想出:

    对于乡村而言,(dp(i,j,k)=a_{i}*(b_{i}+j)*(c_{i}+k))

    对于城市而言,(dp(i,j,k)=min(dp(ls,j+1,k)+dp(rs,j,k),dp(ls,j,k)+dp(rs,j,k+1)))

    每一层中暴力枚举(40*40)次即可。

    不用剪枝(反正复杂度过得去)

    但是,空间开不下,因此要维护一个表示当前链的栈

    注意到在DP中,每个状态只会被访问到一次,因此访问完(x),就可以回收(ls(x))和(rs(x))了

    时间复杂度:(O(3200*n))

    空间复杂度:(O(40^{3}*2))

    这题为什么难呢?

    因为它给人一种数论题的感觉。

    代码在此

  • 相关阅读:
    PMP--4.3-1 进度管理计划
    PMP--4.3 规划进度管理&规划进度管理工具与技术--进度管理计划
    PMP--4.2 规划范围管理--范围管理计划--需求管理计划
    PMP工具与技术篇--4.2.3 WBS分解
    PMP--4.2.3-1 范围基准**--WBS词典
    PMP --4.2.3 创建WBS(工作分解结构)--WBS--范围基准
    PMP工具与技术篇--4.2.2 定义范围工具与技术总结--产品分析
    PMP--4.2.2 定义范围--项目范围说明书
    PMP工具与技术篇--4.2.1-6 原型(DEMO)法
    PMP工具与技术篇--4.2.1-5 观察与交谈(人际关系与团队技能)
  • 原文地址:https://www.cnblogs.com/reverymoon/p/8894083.html
Copyright © 2011-2022 走看看