【Luogu】P1131时态同步(树形DP)
题目链接
甚矣吾衰也!这么简单的DP我都不会了
太恐怖了
树形DP,从子树里选出时间最长的来,剩下的调到这个最长时间即可。
#include<cstdio> #include<cctype> #include<algorithm> #include<cstring>using std::max;inline long long read(){long long num=0,f=1;char ch=getchar();while(!isdigit(ch)){if(ch=='-') f=-1;ch=getchar();}while(isdigit(ch)){num=num*10+ch-'0';ch=getchar();}return num*f; }struct Edge{int next,to,val; }edge[3000020]; int head[1000200],num; inline void add(int from,int to,int val){edge[++num]=(Edge){head[from],to,val};head[from]=num; }long long f[1020000]; void dfs(int x,int fa){for(int i=head[x];i;i=edge[i].next){int to=edge[i].to;if(to==fa) continue;dfs(to,x);f[x]=max(f[x],f[to]+edge[i].val);} }long long calc(int x,int fa){long long ans=0;for(int i=head[x];i;i=edge[i].next){int to=edge[i].to;if(to==fa) continue;ans+=calc(to,x);ans+=f[x]-f[to]-edge[i].val;}return ans; }int main(){int n=read(),S=read();for(int i=1;i<n;++i){int from=read(),to=read(),val=read();add(from,to,val);add(to,from,val);}dfs(S,S);printf("%lld",calc(S,S));return 0; }
转载于:https://www.cnblogs.com/cellular-automaton/p/8045758.html
【Luogu】P1131时态同步(树形DP)相关推荐
- [ZJOI2007]时态同步 树形DP
题意:给定一棵N个节点的无根树,每条边都有一个权值V,选取其中一个点作为关键点,你可以任意增加某条边的权值,求使得从关键点出发,到任意一个叶子节点的距离都相同所需要增加的权值和. 数据范围: 对于40 ...
- 洛谷 1131 [ZJOI2007]时态同步——树形dp
题目:https://www.luogu.org/problemnew/show/P1131 因为越高,调节一个影响到的越多,所以底下只要把子树间的差异消除了就行了,与其他部分的差异由更高的边调节. ...
- BZOJ 4042 Luogu P4757 [CERC2014]Parades (树形DP、状压DP)
题目链接 (BZOJ) https://www.lydsy.com/JudgeOnline/problem.php?id=4042 (Luogu) https://www.luogu.org/prob ...
- [ZJOI2007]棋盘制作 报表统计 矩阵游戏 时态同步
好长时间了..简要除草. 棋盘制作:经典dp... 报表统计:明显数据结构,,,但我没想出来,第一问可以用堆,第二问用平衡树. 矩阵游戏:好吧.一眼二分图,匈牙利过. 时态同步:树形dp,貌似不难,( ...
- [luogu1131][bzoj1060][ZJOI2007]时态同步【树形DP】
传送门:https://www.luogu.org/problemnew/show/P1131 题目大意 给你一棵树,每条边有边权,要求增加一些边的边权,使得根节点到每个叶子节点的距离相等,求出最少共 ...
- $bzoj1060-ZJOI2007$ 时态同步 贪心 树形$dp$
题面描述 小\(Q\)在电子工艺实习课上学习焊接电路板.一块电路板由若干个元件组成,我们不妨称之为节点,并将其用数字\(1,2,3-.\)进行标号.电路板的各个节点由若干不相交的导线相连接,且对于电路 ...
- 1060. [ZJOI2007]时态同步【树形DP】
Description 小Q在电子工艺实习课上学习焊接电路板.一块电路板由若干个元件组成,我们不妨称之为节点,并将其用数 字1,2,3-.进行标号.电路板的各个节点由若干不相交的导线相连接,且对于电路 ...
- 【BZOJ1060】[ZJOI2007] 时态同步(树形DP)
点此看题面 大致题意: 给你一棵带权树,每次使用道具可以将某条边的边权加\(1\),问你至少需要使用多少次道具,才能使每个叶子节点到根节点的距离相等. 贪心的思想 首先,我们应该先有一个贪心的思想. ...
- P1131 [ZJOI2007] 时态同步
P1131 [ZJOI2007] 时态同步 题意: 有一颗树,有一个点是激发器,从这个点开始可以产生一个激励电流,通过导线传向每一个它所连接的节点,经过一个边的花费为w[i],你有一个道具,每用一次可 ...
最新文章
- qt4如何读oracle,Qt4编程的控制MPlayer
- Python Study:GUI-Tkinter
- docker 安装oracle_rancher安装oracle 11g
- [.NET领域驱动设计实战系列]专题八:DDD案例:网上书店分布式消息队列和分布式缓存的实现...
- Shell入门教程:命令替换 $() 和 ``
- 【记录】idea创建springboot多模块项目
- 19个很有用的 JavaScript 库
- java实验报告实验六,第六周java实验报告四
- Activiti的BPMN2.0中的子流程
- 7-9 40059 四则运算 (15 分)
- C# 创建进程但是失败,原因是什么
- ios定制中间突出的tabBar
- 台式机装苹果系统_关于最近折腾黑苹果的一些心得分享
- linux 查看服务器防火墙状态,linux防火墙查看状态firewall、iptable
- 阿里巴巴余军:钉钉宜搭低代码实践之路
- 鸿蒙HarmonyOS应用开发系列 | 解读鸿蒙源码
- javase-Calendar
- ORACLE日期函数浅谈
- var、let、const的区别
- QuickSDK-手游出海服务器接入技巧
热门文章
- css实现简单的告警提示动画效果
- 【动态规划】数字三角形2
- 搭建一个redis高可用系统
- Spark学习笔记(7)---Spark SQL学习笔记
- JS实战 · 复选框全选操作
- NSDictionary NSArray 转中文输出
- MFC 错误异常,用vs添加资源并为资源定义类后报错:error C2065 : 未声明的标识符...
- 使用wrapper将java程序注册程windows服务后不生效
- 浅谈C++中内存分配、函数调用和返回值问题
- 分布式系统部署、监控与进程管理的几重境界