[BZOJ1060][ZJOI2007]时态同步(树形dp)
来源:互联网 发布:网络象棋 编辑:程序博客网 时间:2024/05/16 12:42
题目描述
传送门
题解
f[i]表示点i到其所在子树的叶子节点的最远距离,那么显然f[i]-f[son[i]]-c[i]表示这条边应该延迟的时间。
所以答案即为
代码
#include<iostream>#include<cstring>#include<cstdio>using namespace std;#define LL long longconst int max_n=5e5+5;const int max_e=max_n*2;int n,s,x,y;LL z,ans,f[max_n];int tot,point[max_n],next[max_e],v[max_e];LL c[max_e];inline void add(int x,int y,LL z){++tot;next[tot]=point[x];point[x]=tot;v[tot]=y;c[tot]=z;}inline void dfs(int x,int fa){ for (int i=point[x];i;i=next[i]) if (v[i]!=fa){ dfs(v[i],x); f[x]=max(f[x],f[v[i]]+c[i]); } for (int i=point[x];i;i=next[i]) if (v[i]!=fa) ans+=f[x]-f[v[i]]-c[i];}int main(){ scanf("%d%d",&n,&s); for (int i=1;i<n;++i) scanf("%d%d%lld",&x,&y,&z),add(x,y,z),add(y,x,z); dfs(s,0); printf("%lld\n",ans);}
0 0
- [BZOJ1060][ZJOI2007]时态同步(树形dp)
- 【bzoj1060】【ZJOI2007】时态同步(树形dp)
- 【BZOJ1060】时态同步(ZJOI2007)-树形DP
- [bzoj1060][ZJOI2007]时态同步 树形DP
- [bzoj1060][ZJOI2007]时态同步(树上dp)
- bzoj1060 [ZJOI2007]时态同步 [树形dp][贪心…]
- [BZOJ1060] [ZJOI2007]时态同步
- bzoj1060: [ZJOI2007]时态同步
- bzoj1060[ZJOI2007] 时态同步
- bzoj1060: [ZJOI2007]时态同步
- BZOJ1060[ZJOI2007]时态同步
- BZOJ1060 [ZJOI2007]时态同步
- bzoj1060 [ZJOI2007]时态同步
- bzoj1060 [ZJOI2007]时态同步
- 【BZOJ1060】【ZJOI2007】时态同步
- bzoj1060: [ZJOI2007]时态同步
- 【BZOJ1060】[ZJOI2007]时态同步
- [ZJOI2007]时态同步(树形DP+DFS)
- 手机安全卫士第二天
- Java 字符串分割“|”与“.”Bug(切记)
- SoapUI-入门
- 几个简单的排序算法
- CF初体验---Round #348,B
- [BZOJ1060][ZJOI2007]时态同步(树形dp)
- cocos2d-x屏幕适配
- Android项目的目录结构
- DataMining(2)_Mining Frequent Patterns
- 蛤玮准备礼物
- Spring学习笔记4-AOP
- 专题三 第一题
- PHP中获得mac地址
- MSSQL如何在没有主键的表中删除重复数据