[ZJOI2007] 时态同步
题面
显然的一个建模是,每个叶子对应一个权值,代表比最晚的叶子早了多久,然后我们要做的就是给每条边赋上值,使得每个叶子到根的路径上的所有边权值和等于叶子的权值。
我们贪心的想一想,必然是离根越近的边赋值多的情况比较优(在保证同步的情况下),因为离根越近的边影响的叶子会更多。
而对于两个节点 u,v,我们必须要在lca(u,v)以下的边中赋值使得 u和v同步,因为再往上的边对u和v的影响就相同了。
于是根据以上两点,可以得到一个比较简单的dp。
f[x]表示以x为根的子树所有叶子同步的最小代价,转移很简单,留给大家想了w
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=500005;int hd[N],ne[N*2],to[N*2],val[N*2],num,n,S,mx[N];
ll f[N];inline void add(int x,int y,int z){to[++num]=y,ne[num]=hd[x],hd[x]=num,val[num]=z;
} inline int read(){int x=0; char ch=getchar();for(;!isdigit(ch);ch=getchar());for(;isdigit(ch);ch=getchar()) x=x*10+ch-'0';return x;
}void dfs(int x,int fa){for(int i=hd[x];i;i=ne[i]) if(to[i]!=fa)dfs(to[i],x),mx[x]=max(mx[x],mx[to[i]]+val[i]);for(int i=hd[x];i;i=ne[i]) if(to[i]!=fa)f[x]+=f[to[i]]+mx[x]-mx[to[i]]-val[i];
}int main(){n=read(),S=read();for(int i=1,u,v,w;i<n;i++) u=read(),v=read(),w=read(),add(u,v,w),add(v,u,w);dfs(S,0);printf("%lld\n",f[S]);return 0;
}
转载于:https://www.cnblogs.com/JYYHH/p/11258074.html
[ZJOI2007] 时态同步相关推荐
- P1131 [ZJOI2007] 时态同步
P1131 [ZJOI2007] 时态同步 题意: 有一颗树,有一个点是激发器,从这个点开始可以产生一个激励电流,通过导线传向每一个它所连接的节点,经过一个边的花费为w[i],你有一个道具,每用一次可 ...
- ZJOI2007时态同步
描述 小Q在电子工艺实习课上学习焊接电路板.一块电路板由若干个元件组成,我们不妨称之为节点,并将其用数字1,2,3-.进行标号.电路板的各个节点由若干不相交的导线相连接,且对于电路板的任何两个节点,都 ...
- 1060. [ZJOI2007]时态同步【树形DP】
Description 小Q在电子工艺实习课上学习焊接电路板.一块电路板由若干个元件组成,我们不妨称之为节点,并将其用数 字1,2,3-.进行标号.电路板的各个节点由若干不相交的导线相连接,且对于电路 ...
- P1131 [ZJOI2007]时态同步
传送门 DP 题目讲得很清楚"对于电路板的任何两个节点,都存在且仅存在一条通路". 所以电路板是一颗树 题目要求叶子节点时态一致 如果从根开始枚举时间肯定超时 考虑反过来 从叶子节 ...
- 洛谷 1131 [ZJOI2007] 时态同步
题目描述 小Q在电子工艺实习课上学习焊接电路板.一块电路板由若干个元件组成,我们不妨称之为节点,并将其用数字1,2,3-.进行标号.电路板的各个节点由若干不相交的导线相连接,且对于电路板的任何两个节点 ...
- [luogu1131][bzoj1060][ZJOI2007]时态同步【树形DP】
传送门:https://www.luogu.org/problemnew/show/P1131 题目大意 给你一棵树,每条边有边权,要求增加一些边的边权,使得根节点到每个叶子节点的距离相等,求出最少共 ...
- [ZJOI2007] 时态同步(拓扑序)
problem 洛谷链接 solution 结论:使用道具的导线深度越浅越好. 显然,如果有两个终止节点都需要增加 xxx,那么在他们的 lca\text{lca}lca 到根的路径中任意一条边增加 ...
- [ZJOI2007]时态同步 树形DP
题意:给定一棵N个节点的无根树,每条边都有一个权值V,选取其中一个点作为关键点,你可以任意增加某条边的权值,求使得从关键点出发,到任意一个叶子节点的距离都相同所需要增加的权值和. 数据范围: 对于40 ...
- LuoguP1131 [ZJOI2007]时态同步
注意开longlong 参考神仙题解 自己的风格: #include<cstdio> #include<cstring> #include<algorithm> # ...
最新文章
- Science:穿梭于个体大脑与群体大脑之间探索社会智能
- 《Swift 权威指南》——第6章,第6.7节常量和变量参数
- python十进制转八进制_怎样用python进行二进制,八进制,十进制转换
- 【Netty】Netty 核心组件 ( ChannelHandlerContext )
- Java打乱牌的算法_Leetcode 384. 打乱数组 (洗牌算法)
- 里程碑!我的github排名进入前100名!
- SAP 电商云 Spartacus UI 如何在应用程序里捕捉到成功下单的事件
- 支付宝解释 2019 年账单总额较高;腾讯 QQ 回应新功能可显示对方实时电量;Python 2.7 结束支持 | 极客头条...
- Linux安装rabbitMQ
- SCA-IOT2050 连接至阿里云IOT平台,并通过阿里云IOT控制PLC
- 工业互联网(一):工业互联网的发展背景
- 华为快应用支持广告变现,加速商业化进程
- 深入理解Java虚拟机——加载和存储指令
- 我的理想计算机应用作文,我的理想当一名程序员作文
- 关于LINUX系统netterm终端登陆乱码问题。
- 机器学习——贝叶斯网(bayesian Network)一
- 中彩双色球彩票软件 红球预测专家 多特软件
- Qt判断文件夹路径、文件是否存在不存在则创建
- 2023.0329MySQL数据库
- TD8655芯片手册详解