题意

题目链接

Sol

每当出题人想起他出的HNOI 2018 Day2T3,他都会激动的拍打着轮椅

读题比做题用时长系列。。。

\(f[i][a][b]\)表示从根到\(i\)的路径上,有\(a\)条公路未被翻修,\(b\)条铁路未被翻修

然后xjb转移一下

比较好奇为啥不会MLE..

#include<bits/stdc++.h>
#define LL long long
using namespace std;
const int MAXN = 1e5 + 10;
const LL INF = 1e18;
inline int read() {
char c = getchar(); int x = 0, f = 1;
while (c < '0' || c > '9') {if (c == '-')f = -1; c = getchar();}
while (c >= '0' && c <= '9') {x = x * 10 + c - '0'; c = getchar();}
return x * f;
}
int N, ls[MAXN], rs[MAXN];
LL A[MAXN], B[MAXN], C[MAXN];
vector<int> v[MAXN];
LL f[20001][41][41];
LL dfs(int x, LL a, LL b) {
if(x > N) return C[x] * (A[x] + a) * (B[x] + b);
if(f[x][a][b] <= INF) return f[x][a][b];
else f[x][a][b] = min(dfs(ls[x], a, b) + dfs(rs[x], a, b + 1), dfs(ls[x], a + 1, b) + dfs(rs[x], a, b));
return f[x][a][b];
}
int main() {
// freopen("a.in", "r", stdin);
memset(f, 0x7f, sizeof(f));
N = read();
for(int i = 1; i <= N - 1; i++) {
ls[i] = read(); rs[i] = read();
if(ls[i] < 0) ls[i] = -ls[i] + N;
if(rs[i] < 0) rs[i] = -rs[i] + N;
}
for(int i = N + 1; i <= 2 * N; i++) A[i] = read(), B[i] = read(), C[i] = read();
if(N == 1) cout << 0 << endl;
else cout << dfs(1, 0, 0);
return 0;
}

洛谷P4438 [HNOI/AHOI2018]道路(dp)的更多相关文章

  1. [Bzoj5285][洛谷P4424][HNOI/AHOI2018]寻宝游戏(bitset)

    P4424 [HNOI/AHOI2018]寻宝游戏 某大学每年都会有一次Mystery Hunt的活动,玩家需要根据设置的线索解谜,找到宝藏的位置,前一年获胜的队伍可以获得这一年出题的机会. 作为新生 ...

  2. 洛谷 P4426 - [HNOI/AHOI2018]毒瘤(虚树+dp)

    题面传送门 神仙虚树题. 首先考虑最 trival 的情况:\(m=n-1\),也就是一棵树的情况.这个我相信刚学树形 \(dp\) 的都能够秒掉罢(确信).直接设 \(dp_{i,0/1}\) 在表 ...

  3. 【题解】Luogu P4438 [HNOI/AHOI2018]道路

    原题传送门 实际就是一道简单的树形dp 设f[u][i][j]表示从根结点到结点u经过i条未翻修公路,j条未翻修铁路的贡献最小值 边界条件:f[leaf][i][j]=(A+i)(B+j)C (题目上 ...

  4. P4438 [HNOI/AHOI2018]道路

    辣稽题目 毁我青春 耗我钱财. 设\(f[x][i][j]\)为从1号点走到x点经过i条公路j条铁路,子树的最小代价. \(f[leaf][i][j]=(A+i)(B+j)C\) \(f[x][i][ ...

  5. 洛谷 P4437 [HNOI/AHOI2018]排列(贪心+堆,思维题)

    题面传送门 开始 WA ycx 的遗产(bushi 首先可以将题目转化为图论模型:\(\forall i\) 连边 \(a_i\to i\),然后求图的一个拓扑序 \(b_1,b_2,\dots b_ ...

  6. 洛谷P4425 [HNOI/AHOI2018]转盘(线段树)

    题意 题目链接 Sol 首先猜一个结论:对于每次询问,枚举一个起点然后不断等到某个点出现时才走到下一个点一定是最优的. 证明不会,考场上拍了3w组没错应该就是对的吧... 首先把数组倍长一下方便枚举起 ...

  7. 洛谷P4424 [HNOI/AHOI2018]寻宝游戏(思维题)

    题意 题目链接 Sol 神仙题Orz Orz zbq爆搜70.. 考虑"与"和"或"的性质 \(0 \& 0 = 0, 1 \& 0 = 0\) ...

  8. Luogu P4438 [HNOI/AHOI2018]道路

    题目 注意到\(n\)不大并且深度不大. 记\((u,ls_u)\)为\(L\)边,\((u,rs_u)\)为\(r\)边. 所以我们可以设\(f_{p,i,j}\)表示从根到\(p\)有\(i\)条 ...

  9. [洛谷P4436] HNOI/AHOI2018 游戏

    问题描述 一次小G和小H在玩寻宝游戏,有n个房间排成一列,编号为1,2,...,n,相邻的房间之间都有一道门.其中一部分门上锁(因此需要有对应的钥匙才能开门),其余的门都能直接打开.现在小G告诉了小H ...

随机推荐

  1. CentOS添加明细路由

    网络架构图   根据最近为客户设计的网络架构,简单的梳理一个网路架构图,当然实际上的网络架构要比这个架构图复杂的多,咱们这边只是用这个图作为一个简单的示例. 拓扑分析   我们要实现专线两端不同网段的 ...

  2. 还原一直卡在ASYNC_IO_COMPLETION浅析

    下面在还原一个数据库(备份文件40多G大小,实际数据库大小300G),在还原过程中,出现一直等待ASYNC_IO_COMPLETION,如下测试截图所示,已经等待了72分钟了,但是还原比例依然为0% ...

  3. MyBatis 源码分析 - SQL 的执行过程

    * 本文速览 本篇文章较为详细的介绍了 MyBatis 执行 SQL 的过程.该过程本身比较复杂,牵涉到的技术点比较多.包括但不限于 Mapper 接口代理类的生成.接口方法的解析.SQL 语句的解析 ...

  4. Swift5 语言指南(十六) 初始化

    初始化是准备要使用的类,结构或枚举的实例的过程.此过程涉及为该实例上的每个存储属性设置初始值,并执行在新实例准备好使用之前所需的任何其他设置或初始化. 您可以通过定义实现这个初始化过程初始化,这就像特 ...

  5. Liferay的一些应用领域

    Liferay的用途是快速的部署内外站点,统一权限管理,开发Web热插拔插件,并不是所有系统都适合 不适合Liferay的一些应用领域: 1.独立认证.简单的系统,比如一些简单的增删改查:2.复杂业务 ...

  6. (转)Linux内核参数之arp_ignore和arp_announce

    原文:https://blog.csdn.net/ccy19910925/article/details/79960599 一.arp_ignore和arp_announce介绍 arp_ignore ...

  7. centos7 部署YApi

    =============================================== 2018/6/5_第2次修改                       ccb_warlock 更新说 ...

  8. 大叔力量VIP介绍

    VIP介绍 框架技术点 平台 仓储 日志收集 缓存 消息队列 服务总线 事务 任务调度 授权 模块化 服务发现 .net ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ - .net core ✔ ✔ ✔ ✔ ✔ ...

  9. Zabbix4.2.0基本配置和邮件报警

    目录 1. 修改中文 2. 添加监控本机 3. 监控本机mysql 4. 配置邮件报警 4.1 添加FTP模板 4.2 报警媒介类型 4.3 配置报警到用户 4.4 配置动作 4.5 模拟FTP故障 ...

  10. python 装饰方法

    def _concurrent(func): @wraps(func) # 加入这个的目的是保持原来方法的属性 def arg_wrapper(self, *args, **kwargs): try: ...