树上背包。

简单的树形$dp$,计算出摧毁每一个节点所需的最小费用,背包即可。

#include<bits/stdc++.h>
using namespace std; struct X
{
int fa;
int in;
int ip;
int c;
}s[]; int dp[][];
int cost[];
int f[]; vector<int>g[];
int n,root,ans; void dfs(int x)
{
if(g[x].size()==)
{
cost[x]=s[x].c;
return ;
} for(int i=;i<g[x].size();i++)
{
int to=g[x][i];
dfs(to);
}
for(int j=;j<=s[x].in;j++) f[j]=dp[x][j]=0x7FFFFFFF; for(int i=;i<g[x].size();i++)
{
int A = cost[g[x][i]],B = s[g[x][i]].ip;
if(A==0x7FFFFFFF) continue; for(int j=;j<=s[x].in;j++) f[j]=0x7FFFFFFF;
for(int j=;j<=s[x].in;j++)
{
if(dp[x][j]==0x7FFFFFFF) continue;
f[min(s[x].in,j+B)] = min(f[min(s[x].in,j+B)],dp[x][j] + A);
}
for(int j=;j<=s[x].in;j++) dp[x][j] = min(dp[x][j],f[j]);
}
cost[x] = dp[x][s[x].in];
if(cost[x]!=0x7FFFFFFF) cost[x] = cost[x] + s[x].c;
} int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++)
{
scanf("%d%d%d%d",&s[i].fa,&s[i].in,&s[i].ip,&s[i].c);
if(s[i].fa==) root=i;
g[s[i].fa].push_back(i);
} ans=0x7FFFFFFF;
dfs(root);
ans=cost[root]; if(ans!=0x7FFFFFFF) printf("%d\n",ans);
else printf("-1\n"); return ;
}

hihocoder 1500 EL SUENO的更多相关文章

  1. ●hihocoder #1394 网络流四·最小路径覆盖

    题链: http://hihocoder.com/problemset/problem/1394 题解: 有向图最小路径覆盖:最少的路径条数不重不漏的覆盖所有点. 注意到在任意一个最小路径覆盖的方案下 ...

  2. JAVA WEB EL表达式注入

    看猪猪侠以前的洞,顺便总结下: 一.EL表达式简介 EL 全名为Expression Language.EL主要作用: 1.获取数据 EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的we ...

  3. jsp页面无法识别el表达式的解决方案

    今天在写一个springmvc的小demo时,碰到一个问题,在jsp页面中书写为${user.username}的表达式语言,在浏览器页面中仍然显示为${user.username},说明jsp根本不 ...

  4. Mac制作U盘系统(OS X El Capitan)教程

    前言部分 重装过Mac OS X系统的人应该都深有体会,通过自带的重新安装 Mac OS X功能恢复系统(开机时按Command+R) 要耗费10几个小时才能完成(请求苹果国外服务器),但如果通过U盘 ...

  5. El表达式的关系运算符

    El表达式的关系运算符: ==  对应  eq !=   对应  ne >    对应  gt <    对应  It

  6. java web学习总结(三十一) -------------------EL表达式

    一.EL表达式简介 EL 全名为Expression Language.EL主要作用: 1.获取数据 EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域 中检索java对象.获取数 ...

  7. EL表达式的算术运算

    一个例子--乘法运算 ${book.bookCount * book.bookPrice } 两个不同对象的EL表达式的算术运算同理 ${student.studentNum * book.bookP ...

  8. EL表达式杂项

    1.<%@ page isELIgnored="false" %> 是否忽略EL表达式,如果值为ture,那么  ${..}这样的会直接原样输出,不会进行EL表达式计算 ...

  9. hihocoder -1121-二分图的判定

    hihocoder -1121-二分图的判定 1121 : 二分图一•二分图判定 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 大家好,我是小Hi和小Ho的小伙伴Net ...

随机推荐

  1. HDU 3507 单调队列 斜率优化

    斜率优化的模板题 给出n个数以及M,你可以将这些数划分成几个区间,每个区间的值是里面数的和的平方+M,问所有区间值总和最小是多少. 如果不考虑平方,那么我们显然可以使用队列维护单调性,优化DP的线性方 ...

  2. CF851 C 暴力

    给出n个5维下的点,求点a不与其它任意的b,c重合,向量ab,ac的夹角都为钝角,这样的点个数,并打印它们. 转换二维下的求角度的函数为五维的,而且由于要求角度大于90度,在二维情况下最多有4个点,也 ...

  3. LightOJ 1096 - nth Term 矩阵快速幂

    http://www.lightoj.com/volume_showproblem.php?problem=1096 题意:\(f(n)  = a * f(n-1) + b * f(n-3) + c, ...

  4. Python学习笔记(十)匿名函数

    摘抄自:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431843456 ...

  5. PHP扩展开发--01.编写一个helloWorld扩展

    为什么要用C扩展 C是静态编译的,执行效率比PHP代码高很多.同样的运算代码,使用C来开发,性能会比PHP要提升数百倍. 另外C扩展是在进程启动时加载的,PHP代码只能操作Request生命周期的数据 ...

  6. Jdbc练习

    import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import ...

  7. SDUT 3929

    Description 蓝色空间号和万有引力号进入了四维水洼,发现了四维物体--魔戒. 这里我们把飞船和魔戒都抽象为四维空间中的一个点,分别标为 "S" 和 "E&quo ...

  8. 如何实用便捷的在本地真机调试WEB端HTML5网页

    先简单介绍两款常用但需要一定条件或限制的工具 1.如果你能FQ chrome在32版本后就自带了移动端调度工具,可以在Android直接联调,但唯一遗憾的是,在我大天朝要FQ后才能行的通,我自己试了后 ...

  9. Linux终端提示符PS1设置(颜色)

    \d :代表日期,格式为weekday month date,例如:"Mon Aug 1"\H :完整的主机名称.例如:我的机器名称为:fc4.linux,则这个名称就是fc4.l ...

  10. $.when()方法翻译2

    mac不知道为何,文章字数一多,浏览器就重启.只好分开写了. In the event a Deferred was resolved with no value, the corresponding ...