P3018 [USACO11MAR]树装饰Tree Decoration

比较水的一道树上模拟水题,更新每个点的价值为以这个点为根的子树中的价值最小值,同时更新以每个节点为根的$sum$值,即以这个节点为根的子树的礼物数,

如果$sum$值小于自身所规定数,就用最小值来计算剩余价值。

#include<iostream>
#include<cstdio>
#include<algorithm> #define N 1000000
#define inf 0x7fffffff
#define LL long long
using namespace std; LL n,val[N],d[N],f[N],s[N];
LL ans;
LL head[N],tot;
struct node{
LL to,next;
}e[N]; void add(LL u,LL v){
e[++tot].to=v,e[tot].next=head[u],head[u]=tot;
} void dfs(LL u){
for(LL i=head[u];i;i=e[i].next){
LL v=e[i].to;
if(v==f[u]) continue;
dfs(v);
val[u]=min(val[u],val[v]);
s[u]+=s[v];
}
if(s[u]<d[u]) ans+=(d[u]-s[u])*val[u],s[u]=d[u];
} int main()
{
scanf("%lld",&n);
for(LL i=;i<=n;i++){
scanf("%lld%lld%lld",&f[i],&d[i],&val[i]);
add(i,f[i]),add(f[i],i);
}
for(LL i=;i<=n;i++){
if(f[i]==-){
dfs(i);
printf("%lld\n",ans);
break;
}
} return ;
}

最新文章

  1. Theano入门神经网络(四)
  2. python多线程生成缩略图
  3. window10系统安装oracle11g时遇到INS-13001环境不满足最低要求
  4. [软件测试]Linux环境中简单清爽的Google Test (GTest)测试环境搭建(初级使用)
  5. 探秘腾讯Android手机游戏平台之不安装游戏APK直接启动法
  6. 读logback源码系列文章(五)——Appender --转载
  7. li里的a标签浮动了,为什么li本身也浮动了?
  8. .bind.apply() 解决 new 操作符不能用与 apply 或 call 同时使用
  9. oracle11实战详解
  10. dotNet程序员的Java爬坑之旅(三)之spring MVC篇一
  11. 二、截取字符串长度(css方式)
  12. 1060E Sergey and Subway(思维题,dfs)
  13. Keil5创建GPIO
  14. 性能测试之mysql监控、优化
  15. Java-Runoob-高级教程-实例-方法:10. Java 实例 – 标签(Label)
  16. java通过接口扩展枚举
  17. (19)3 moons and a planet that could have alien life
  18. google-gson 使用及GsonBuilder设置
  19. 三步搞定 opencv 初始环境设定
  20. bing 搜索引擎 无法访问 bug

热门文章

  1. 关于spring配置文件中编辑时没有提示信息的问题
  2. luogu 1121 环状最大两段子段和
  3. ssh验证和端口转发
  4. E20171106-hm
  5. bzoj1770: [Usaco2009 Nov]lights 燈(折半搜索)
  6. Django day35 redis连接池,redis-list操作,django中使用redis,支付宝支付
  7. 洛谷P4887 第十四分块(前体)(二次离线莫队)
  8. AGC16E Poor Turkeys
  9. 贪心 HDOJ 5355 Cake
  10. ACM_Fibonacci数(同余)