bzoj 5290: [Hnoi2018]道路
Description

Solution
PJDP毁青春
注意到性质:到根的道路不超过 \(40\) 条
所以我们只关系一个点上面的道路的情况就行了
设 \(f[x][i][j]\) 表示一个点 \(x\) ,上面有 \(i\) 条公路没修,\(j\) 条铁路没修的最小代价
\(f[x][i][j]=min(f[ls][i+1][j]+f[rs][i][j],f[ls][i][j]+f[rs][i][j+1])\)
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<cstdio>
#include<ctime>
#include<cmath>
using namespace std;
typedef long long ll;
const int N=40010;
int n,ls[N],rs[N],b[N][2];
ll A[N],B[N],C[N],f[20010][45][45];
int xl[N],yl[N],tn;
inline void DFS(int x,int X,int Y){
xl[x]=X;yl[x]=Y;
if(x>=n)return ;
DFS(ls[x],X+1,Y);
DFS(rs[x],X,Y+1);
}
inline ll F(int x,int i,int j){
if(x<n)return f[x][i][j];
return C[x]*(A[x]+i)*(B[x]+j);
}
inline void dfs(int x){
if(x>=n)return ;
dfs(ls[x]);dfs(rs[x]);
for(int i=0;i<=xl[x];i++)
for(int j=0;j<=yl[x];j++)
f[x][i][j]=min(F(ls[x],i+1,j)+F(rs[x],i,j),F(ls[x],i,j)+F(rs[x],i,j+1));
}
int main(){
scanf("%d",&n);tn=n+n-1;
for(int i=1;i<n;i++){
scanf("%d%d",&b[i][0],&b[i][1]);
if(b[i][0]<0)b[i][0]=-b[i][0]+n-1;
if(b[i][1]<0)b[i][1]=-b[i][1]+n-1;
ls[i]=b[i][0];rs[i]=b[i][1];
}
for(int i=1;i<=n;i++)cin>>A[i+n-1]>>B[i+n-1]>>C[i+n-1];
DFS(1,0,0);
memset(f,127/3,sizeof(f));
dfs(1);
cout<<f[1][0][0]<<endl;
return 0;
}
bzoj 5290: [Hnoi2018]道路的更多相关文章
- 5290: [Hnoi2018]道路
5290: [Hnoi2018]道路 链接 分析: 注意题目中说每个城市翻新一条连向它的公路或者铁路,所以两种情况分别转移一下即可. 注意压一下空间,最后的叶子节点不要要访问,空间少了一半. 代码: ...
- 【BZOJ5290】 [Hnoi2018]道路
BZOJ5290 [Hnoi2018]道路 前言 这道题目我竟然没有在去年省选切? 我太菜了. Solution 对题面进行一个语文透彻解析,发现这是一个二叉树,乡村都是叶子节点,城市都有两个儿子.( ...
- [HNOI2018]道路 --- 树形DP
[HNOI2018]道路 题目描述: W 国的交通呈一棵树的形状.W 国一共有 \(n-1\) 个城市和 \(n\) 个乡村, 其中城市从 \(1\) 到 \(n-1\) 编号,乡村从 \(1\) 到 ...
- BZOJ.5290.[AHOI/HNOI2018]道路(树形DP)
BZOJ LOJ 洛谷 老年退役选手,都写不出普及提高DP= = 在儿子那统计贡献,不是在父亲那统计啊!!!(这样的话不写这个提高DP写记忆化都能过= =) 然后就令\(f[x][a][b]\)表示在 ...
- 【BZOJ5290】[HNOI2018]道路(动态规划)
[BZOJ5290][HNOI2018]道路(动态规划) 题面 BZOJ 洛谷 题目直接到洛谷上看吧 题解 开始写写今年省选的题目 考场上我写了一个模拟退火骗了\(90\)分...然而重测后只剩下45 ...
- bzoj 2435: [Noi2011]道路修建 树上 dp
2435: [Noi2011]道路修建 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/pr ...
- [BZOJ 3995] [SDOI2015] 道路修建 【线段树维护连通性】
题目链接:BZOJ - 3995 题目分析 这道题..是我悲伤的回忆.. 线段树维护连通性,与 BZOJ-1018 类似,然而我省选之前并没有做过 1018,即使它在 ProblemSet 的第一页 ...
- BZOJ 2435: [Noi2011]道路修建( dfs )
NOI的水题...直接一遍DFS即可 ------------------------------------------------------------------------- #includ ...
- bzoj 3575: [Hnoi2014]道路堵塞
Description A 国有N座城市,依次标为1到N.同时,在这N座城市间有M条单向道路,每条道路的长度是一个正整数.现在,A国交通部指定了一条从城市1到城市N的路径, 并且保证这条路径的长度是所 ...
随机推荐
- 网络1712--c语言字符数组作业总结..
---恢复内容开始--- 作业亮点 1.总体情况 1.大部分同学利用了流程图后,对于思路的理解有了提升. 2.很多同学在总结方面写的很不错,能够罗列问题贴出解决问题,我们能够看到你们的进步 2.作业发 ...
- 同一个页面同时拥有collectionView和navigationBar和tabBar时可能遇到的问题
写一个页面的时候,遇到了页面加载时候collectionView的最下面少了49个像素的位置,切换去别的页面之后,再返回,又变回正常,多方求解无果后,发现原来是系统自带的适应功能导致的,加入以下代码即 ...
- 关于mule中Spring使用中的一个问题
在mule中连接数据库时,大家通常喜欢使用spring的数据库连接以及bean的配置,但是在使用时会出现一些问题,即bean无法找到,这些,就是需要把bean的id属性改成name属性:可能是因为mu ...
- hdu 3642 Get The Treasury
Get The Treasury http://acm.hdu.edu.cn/showproblem.php?pid=3642 Time Limit: 10000/5000 MS (Java/Othe ...
- JVM笔记7-内存分配与回收策略
1.对象优先在Eden分配 大多数情况下,对象在新生代Eden区中分配.当Eden区中没有足够空间分配时,虚拟机将发起一次Minor GC.虚拟机提供了-XX:PrintGCDetails 这个收集器 ...
- http客户端请求及服务端详解
http客户端请求及服务端详解 引言 HTTP 是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和 扩展. ...
- Win7添加php环境变量.
1) "我的电脑"右键"属性"->高级系统设置->环境变量->系统变量->Path->编辑 2) 将PHP的执行路径的目录&quo ...
- 增加Linux虚拟机的硬盘空间
原配置为40G,现需要增加到60G,操作方法如下: 一.虚拟机关机,在编辑设置里调整硬盘空间到60G 二.虚拟机开机,扩展硬盘空间 1.安装gparted,命令如下 sudo apt-get inst ...
- pandas.DataFrame.describe 官方文档翻译percentile_width,percentiles,include, exclude
使用格式:DataFrame.describe(percentile_width=None, percentiles=None, include=None, exclude=None) 作用:生成 ...
- 用Jmeter实现mysql数据库的增删查改
主要是参考虫师的“使用JMeter创建数据库(Mysql)测试”. 1.打开Jmeter,点击测试计划 链接:https://pan.baidu.com/s/1ZtaZ6IC_0DRjSlXkjslY ...