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的路径, 并且保证这条路径的长度是所 ...
随机推荐
- Alpha冲刺第十一天
Alpha冲刺第十一天 站立式会议 项目进展 项目进入尾声,主要测设工作完成过半,项目总结也开始进行. 问题困难 项目的困难现阶段主要是测试过程中存在一些"盲点"很难发现或者发现后 ...
- PTA题目的處理(四)
题目7-3 求交错序列前N项和 1.实验代码 #include <stdio.h> //#include <stdlib.h> int main() { ,N; double ...
- 201621123043《java程序设计》第4周学习总结
1. 本周学习总结 1.1 写出你认为本周学习中比较重要的知识点关键词 关键字:继承.覆盖.多态 1.2 尝试使用思维导图将这些关键词组织起来.注:思维导图一般不需要出现过多的字. 1.3 可选:使用 ...
- UIImage 内存细节
最近的一个项目,有大量的scrollView+imageView,当iPad启动较多程序,再启动自己的这个程序的时候,就爆内存退出了-- 后来把所有的生成图片的方法,全部由imageNamed改成了i ...
- Android 4.4 沉浸式透明状态栏
原文链接:http://www.bkjia.com/Androidjc/913061.html 第一种方法 这里写代码片第一种方法,在代码设置: if(VERSION.SDK_INT >= VE ...
- 几款有用的AndroidStudio插件
1.Android Parcelable code generator 顾名思义,这是个生成实现了Parcelable接口的代码的插件. 在你的类中,按下alt + insert键弹出插入代码的上下文 ...
- Session的过期时间如何计算?
在生成session的时候,会设置一个session过期时间.session的过期时间并不是从生成session对象开始计算,超过过期时间,session就失效了. 而是每当一个浏览器请求,sessi ...
- 【原创】Webpack构建中hash的优化
背景: SPA的vue应用,采用webpack2构建,打包入口为main.js 输出:main模块打包成app.js,公共lib打包成vendor.js,公共样式打包成app.css,运行时依赖打包成 ...
- WebApi 方法的参数类型总结。
1:[HttpGet] ①:get方法之无参数. [HttpGet] public IHttpActionResult GetStudentInfor() { List<StudentMode ...
- JQ.ajax 各种参数及属性设置 ( 转载 )
$.ajax({ type: "post", url: url, dataType:'html', success: function(da ...