【题解】 [HNOI/AHOI2018]道路 (动态规划)
Solution:
- \(dp[i][j][k]\)以\(i\)为子树根节点,到根节点中有\(j\)条公路没修,\(k\)条铁路没修,存子树不便利和
- \(dp[i][j][k]=min(dp[ls][j-1][k]+dp[rs][j][k] , dp[ls][j][k]+dp[rs][j+1][k])\),这个式子其实不难但我感觉也不简单qwq
- 就这样没了
Code:
//It is coded by Ning_Mew on 4.17
#include<bits/stdc++.h>
#define LL long long
using namespace std;
const int maxn=2e4+7;
int n;
struct Node{
int l,r;LL a,b,c;LL dp[40][40];
Node(){l=r=a=b=c=0;memset(dp,0LL,sizeof(dp));}
}node[maxn*2];
void dfs(int u){
if(u>n)return;
int ls=node[u].l,rs=node[u].r;
dfs(ls);dfs(rs);
for(int i=0;i<=39;i++){
for(int j=0;j<=39;j++){
node[u].dp[i][j]=min(node[ls].dp[i+1][j]+node[rs].dp[i][j] , node[rs].dp[i][j+1]+node[ls].dp[i][j]);
}
}return;
}
int main(){
scanf("%d",&n);
for(int i=1;i<=n-1;i++){
int x,y;scanf("%d%d",&x,&y);
if(x<0)x=-x+n;if(y<0)y=-y+n;
node[i].l=x;node[i].r=y;
}
for(int i=n+1;i<=n+n;i++){
LL a,b,c;scanf("%lld%lld%lld",&a,&b,&c);
node[i].a=a;node[i].b=b;node[i].c=c;
for(int j=0;j<=39;j++){
for(int k=0;k<=39;k++){
node[i].dp[j][k]=c*(a+j)*(b+k);
}
}
}
dfs(1);
printf("%lld\n",node[1].dp[0][0]);
return 0;
}
【题解】 [HNOI/AHOI2018]道路 (动态规划)的更多相关文章
- 【题解】Luogu P4438 [HNOI/AHOI2018]道路
原题传送门 实际就是一道简单的树形dp 设f[u][i][j]表示从根结点到结点u经过i条未翻修公路,j条未翻修铁路的贡献最小值 边界条件:f[leaf][i][j]=(A+i)(B+j)C (题目上 ...
- BZOJ5290 & 洛谷4438:[HNOI/AHOI2018]道路——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=5290 https://www.luogu.org/problemnew/show/P4438 的确 ...
- [HNOI/AHOI2018]道路
Description: W 国的交通呈一棵树的形状.W 国一共有\(n - 1\)个城市和\(n\)个乡村,其中城市从\(1\)到\(n - 1\) 编号,乡村从\(1\)到\(n\)编号,且\(1 ...
- 洛谷P4438 [HNOI/AHOI2018]道路(dp)
题意 题目链接 Sol 每当出题人想起他出的HNOI 2018 Day2T3,他都会激动的拍打着轮椅 读题比做题用时长系列... \(f[i][a][b]\)表示从根到\(i\)的路径上,有\(a\) ...
- P4438 [HNOI/AHOI2018]道路
辣稽题目 毁我青春 耗我钱财. 设\(f[x][i][j]\)为从1号点走到x点经过i条公路j条铁路,子树的最小代价. \(f[leaf][i][j]=(A+i)(B+j)C\) \(f[x][i][ ...
- Luogu 4438 [HNOI/AHOI2018]道路
$dp$. 这道题最关键的是这句话: 跳出思维局限大胆设状态,设$f_{x, i, j}$表示从$x$到根要经过$i$条公路,$j$条铁路的代价,那么对于一个叶子结点,有$f_{x, i, j} = ...
- Luogu P4438 [HNOI/AHOI2018]道路
题目 注意到\(n\)不大并且深度不大. 记\((u,ls_u)\)为\(L\)边,\((u,rs_u)\)为\(r\)边. 所以我们可以设\(f_{p,i,j}\)表示从根到\(p\)有\(i\)条 ...
- 题解 [HNOI/AHOI2018]毒瘤
题目传送门 题目大意 给出一个 \(n\) 个点 \(m\) 条边的无向图,问有多少个点集满足点集中任意两点均不存在边相连. \(n\le 10^5,m-n\le 10\),答案对 \(9982443 ...
- 【题解】Luogu P4436 [HNOI/AHOI2018]游戏
原题传送门 \(n^2\)过百万在HNOI/AHOI2018中真的成功了qwqwq 先将没门分格的地方连起来,枚举每一个块,看向左向右最多能走多远,最坏复杂度\(O(n^2)\),但出题人竟然没卡(建 ...
随机推荐
- Windows下配置Django环境
辛辛苦苦,终于在Windows10上把Django环境搭建并成功建立工程 1.首先安装python,配置环境变量path:C:\Python27:C:\Python27\Scripts: 2.去dja ...
- 网络对抗第一次实验——PC平台逆向破解(5)M
网络对抗第一次实验--PC平台逆向破解(5)M 实践一 手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数. 操作步骤: 获取实验用文件pwn1,复制,复制出来的文件改名为20155 ...
- 20155330 《网络攻防》Exp1 PC平台逆向破解(5)M
20155330 <网络攻防>Exp1 PC平台逆向破解(5)M 实践目标 运行pwn1可执行文件中的getshell函数,学习如何注入运行任何Shellcode 本次实践的对象是一个名为 ...
- 【Java框架型项目从入门到装逼】第十一节 用户新增之把数据传递到后台
让我们继续来做"主线任务",这一节,我们来做具体的用户新增功能.首先,为了简单起见,我把主页面改了一些,改的是列表那一块.删去了一些字段,和数据库表对应一致: 现在,我们要实现一个 ...
- python 回溯法 子集树模板 系列 —— 18、马踏棋盘
问题 将马放到国际象棋的8*8棋盘board上的某个方格中,马按走棋规则进行移动,走遍棋盘上的64个方格,要求每个方格进入且只进入一次,找出一种可行的方案. 分析 说明:这个图是5*5的棋盘. 图片来 ...
- 洛咕 P4474 王者之剑
宝石只能在偶数秒取到,假设有一个宝石在奇数秒取到了,那么上一秒是偶数秒,在上一秒的时候这里的宝石就没了. 相邻的两个宝石不能同时取,很显然,先取一块,那么这是偶数秒,取完了这一块之后相邻的都没了. 只 ...
- vue中v-if 和 v-show的区别
简单来说,v-if 的初始化较快,但切换代价高:v-show 初始化慢,但切换成本低 1.共同点 v-if 和 v-show 都可以动态地显示DOM元素 2.区别 (1)手段: v-if 是动态的向D ...
- springboot @PropertySource
@ConfigurationProperties(prefix="person") 默认加载全局配置文件 application.properties或application.ym ...
- Qt连接数据库的两种方法
我曾经想过,无论在哪个平台下开发,都不要再接触SQL Server了,但显然不行.我们是来看世界的,不是来改变世界的,想通就好. 前两天,尝试了一下Qt下远程访问数据库.在macOS下,用Qt 5.1 ...
- 菜鸟凉经(华为、firehome、大华)
面试通知都是前一天来的,准备的时间很少,所以表现也不是特别满意,来看面经吧: 华为一面(IT应用工程师): 1.自我介绍:(华为面试都是1对1,面前的是个温柔的小哥,挺放松的) 2.你主要会的it技术 ...