BZOJ1827[USACO 2010 Mar Gold 1.Great Cow Gathering]——树形DP
题目描述
输入
输出
样例输入
1
1
0
0
2
1 3 1
2 3 2
3 4 3
4 5 3
样例输出
#include<queue>
#include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
long long size[100010];
int head[100010];
int next[200010];
int to[200010];
long long val[200010];
int f[100010];
long long s[100010];
long long a[100010];
int x,y;
long long v;
int n;
int tot;
long long sum;
long long ans;
void add(int x,int y,long long v)
{tot++;next[tot]=head[x];head[x]=tot;to[tot]=y;val[tot]=v;
}
void dfs(int x,int fa)
{f[x]=fa;for(int i=head[x];i;i=next[i]){if(to[i]!=fa){dfs(to[i],x);size[x]+=size[to[i]];}}
}
void dfs2(int x,long long dep)
{ans+=dep*a[x];for(int i=head[x];i;i=next[i]){if(to[i]!=f[x]){dfs2(to[i],dep+val[i]);}}
}
void find(int x)
{for(int i=head[x];i;i=next[i]){if(to[i]!=f[x]){s[to[i]]=s[x]-size[to[i]]*val[i]+(sum-size[to[i]])*val[i];find(to[i]);}}
}
int main()
{scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%lld",&size[i]);a[i]=size[i];sum+=size[i];}for(int i=1;i<n;i++){scanf("%d%d%lld",&x,&y,&v);add(x,y,v);add(y,x,v);}dfs(1,1);dfs2(1,0ll);s[1]=ans;find(1);ans=1ll<<62;for(int i=1;i<=n;i++){ans=min(ans,s[i]);}printf("%lld",ans);
}
转载于:https://www.cnblogs.com/Khada-Jhin/p/9135282.html
BZOJ1827[USACO 2010 Mar Gold 1.Great Cow Gathering]——树形DP相关推荐
- USACO 2008 Jan Gold 3.Cell Phone Network 树形dp
本题的大意就是在一棵树上选一些节点,被选中的节点可以覆盖他相 邻的点,问最少需要放几个节点\text{本题的大意就是在一棵树上选一些节点,被选中的节点可以覆盖他相 邻的点,问最少需要放几个节}\\\t ...
- BZOJ3075[USACO 2013 Mar Gold 3.Necklace]——AC自动机+DP
题目描述 给你一个长度为n的字符串A,再给你一个长度为m的字符串B,求至少在A中删去多少个字符才能使得B不是A的子串.注:该题只读入A和B,不读入长度,先读入A,再读入B.数据保证A和B中只含小写字母 ...
- BZOJ1782[USACO 2010 Feb Gold 3.Slowing down]——dfs+treap
题目描述 每天Farmer John的N头奶牛(1 <= N <= 100000,编号1-N)从粮仓走向他的自己的牧场.牧场构成了一棵树,粮仓在1号牧场.恰好有N-1条道路直接连接着牧场, ...
- bzoj 1827: [Usaco2010 Mar]gather 奶牛大集会【树形dp】
不能用read会TLE!!不能用read会TLE!!不能用read会TLE!! 一开始以为要维护每个点,线段树写了好长(还T了-- 首先dfs一遍,求出点1为集会地点的答案,处理处val[u]为以1为 ...
- 1702: [Usaco2007 Mar]Gold Balanced Lineup 平衡的队列
1702: [Usaco2007 Mar]Gold Balanced Lineup 平衡的队列 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 510 ...
- bzoj 1702: [Usaco2007 Mar]Gold Balanced Lineup 平衡的队列
1702: [Usaco2007 Mar]Gold Balanced Lineup 平衡的队列 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 821 ...
- [USACO 2010 Feb S]Chocolate Eating
题目: [USACO 2010 Feb S]Chocolate Eating ,哈哈,我们今天来看一道二分答案的题嘛,这是选自USACO上的一道题,好了,我们一起来看看题意吧: 题目描述是复制的,可能 ...
- BSOJ4217 【USACO 2013 Feburary Gold】旅行线路 DP(双路递推)
4217 -- [USACO 2013 Feburary Gold]旅行线路 Description 贝西经营着一家旅行社,一天贝西带着几队游客沿着亚马逊河旅行,河的两边分布着一些景点,每个景点都对应 ...
- 题解 | #[USACO 2012 Mar S]Flowerpot#
题解 | #扑克牌大小# import java.util.*;// 注意类名必须为 Main, 不要有任何 package xxx 信息public class Main { p 题解 | #密码截 ...
- HYSBZ-5485【思维】[Usaco2018 Dec]The Cow Gathering
HYSBZ-5485[Usaco2018 Dec]The Cow Gathering 题目 ◇题目传送门◆ 题目大意 给定一棵树与一些限制(u,v)(u,v)(u,v),要求从叶节点开始删除节点,并且 ...
最新文章
- android手机数字取证,基于Android智能终端微信应用的数字取证分析模型的研究
- 关于captive portal
- 浏览器支持java_为什么我下载了java并提示浏览器不支持j
- RabbitMQ批量确认发布
- 嵌入式开发linux工具,嵌入式Linux开发入门之MfgTool工具的使用
- 按压缩格式整理打包(解包)和压缩(解压)命令
- ES6学习笔记(三):教你用js面向对象思维来实现 tab栏增删改查功能
- hdu 4381(背包变形)
- [转载]一个发生在亚洲服务器上的真实故事!
- mondrian olap 示例_详解OLAP概念、基本内容、特点、分类
- fastdfs windows部署_从零搭建分布式文件系统MinIO比FastDFS要更合适
- JSP页面报错:“Uncaught SyntaxError: Unexpected token ”
- tomcat报错:This is very likely to create a memory leak问题解决
- 实战java虚拟机配套代码
- 比较sql server两个数据库
- python写ppt_python可以写PPT吗
- Stata:中介效应理论及sgmediation命令做sobel检验
- PS2游戏手柄——基于STC15W4K32S4
- 关于癌症的思考:癌症的本质是什么
- Contextual Transformer Networks for Visual Recognition