luogu1131 [ZJOI2007]时态同步
num[x]表示x到达叶子最远路径。
每个子节点对答案的贡献是num[x] - (num[t] + edge[i].val)
#include <iostream>
#include <cstdio>
using namespace std;
typedef long long ll;
int n, ss, hea[500005], cnt, uu, vv, ww;
ll num[500005], ans;
struct Edge{
int too, nxt, val;
}edge[1000005];
void add_edge(int fro, int too, int val){
edge[++cnt].nxt = hea[fro];
edge[cnt].too = too;
edge[cnt].val = val;
hea[fro] = cnt;
}
void dfs(int x, int f){
for(int i=hea[x]; i; i=edge[i].nxt){
int t=edge[i].too;
if(t!=f){
dfs(t, x);
num[x] = max(num[x], num[t]+edge[i].val);
}
}
for(int i=hea[x]; i; i=edge[i].nxt){
int t=edge[i].too;
if(t!=f)
ans += num[x] - (num[t] + edge[i].val);
}
}
int main(){
cin>>n>>ss;
for(int i=1; i<n; i++){
scanf("%d %d %d", &uu, &vv, &ww);
add_edge(uu, vv, ww);
add_edge(vv, uu, ww);
}
dfs(ss, 0);
cout<<ans<<endl;
return 0;
}
luogu1131 [ZJOI2007]时态同步的更多相关文章
- 【BZOJ1060】[ZJOI2007]时态同步 树形DP
[BZOJ1060][ZJOI2007]时态同步 Description 小Q在电子工艺实习课上学习焊接电路板.一块电路板由若干个元件组成,我们不妨称之为节点,并将其用数字1,2,3-.进行标号.电路 ...
- BZOJ 1060: [ZJOI2007]时态同步( 树形dp )
坑爹...数据是错的..详见discuss http://www.lydsy.com/JudgeOnline/wttl/wttl.php?pid=1060 先求根到叶子的距离最大值x, 然后把所有叶 ...
- bzoj千题计划163:bzoj1060: [ZJOI2007]时态同步
http://www.lydsy.com/JudgeOnline/problem.php?id=1060 以激发器所在节点为根 终止节点一定是叶节点 记录点的子树内最深的终止节点 然后从根往下使用道具 ...
- P1131 [ZJOI2007]时态同步(树形dp)
P1131 [ZJOI2007]时态同步 设$f[i]$为与$i$与最远的点的距离 在dfs时每次更新的时候顺便统计一下长度,不同的话就改成最长的那条并更新答案 #include<iostrea ...
- 【BZOJ 1060】 1060: [ZJOI2007]时态同步 (树形DP)
1060: [ZJOI2007]时态同步 Description 小Q在电子工艺实习课上学习焊接电路板.一块电路板由若干个元件组成,我们不妨称之为节点,并将其用数 字1,2,3….进行标号.电路板的各 ...
- 洛谷 P1131 [ZJOI2007]时态同步
P1131 [ZJOI2007]时态同步 题目描述 小Q在电子工艺实习课上学习焊接电路板.一块电路板由若干个元件组成,我们不妨称之为节点,并将其用数字1,2,3….进行标号.电路板的各个节点由若干 ...
- Luogu P1131 [ZJOI2007]时态同步(dfs)
P1131 [ZJOI2007]时态同步 题意 题目描述 小\(Q\)在电子工艺实习课上学习焊接电路板.一块电路板由若干个元件组成,我们不妨称之为节点,并将其用数字\(1,2,3,\dots\).进行 ...
- 【bzoj1060】[ZJOI2007]时态同步
题目描述 小Q在电子工艺实习课上学习焊接电路板.一块电路板由若干个元件组成,我们不妨称之为节点,并将其用数字1,2,3-.进行标号.电路板的各个节点由若干不相交的导线相连接,且对于电路板的任何两个节点 ...
- 1060: [ZJOI2007]时态同步 - BZOJ
Description小Q在电子工艺实习课上学习焊接电路板.一块电路板由若干个元件组成,我们不妨称之为节点,并将其用数字1,2,3….进行标号.电路板的各个节点由若干不相交的导线相连接,且对于电路板的 ...
随机推荐
- 开机启动+Linux发送邮件
需求:检测Linux上Tomcat是否允许,挂了的话给运维发送邮件通知 实现:编写脚本一直检测Tomcat进程是否存活,否则给运维发送邮件,脚本设置开机时自动启动 1.Linux发送邮件 vim /e ...
- html原样输出html代码
<xmp>********</xmp> 在网页上显示html代码标记<xmp></xmp>有时我们会将html代码显示在网页上,直接写会有问题, 如果我 ...
- python里面的list、tuple和dict的区别
Dictionary .Dictionary是Python中内置的数据类型之一,他定义了键和值之间一对一的关系. 每一个元素都有一个key-value对,整个元素集合用大括号{}括起来. 你可以通过k ...
- kafka基础二
kafka生产者工作流程 消息产生分析 1.写入方式: producer采用推(push)模式将消息发布到broker,每条消息都会被追加(append)到分区Partition上,属于顺序写磁盘(顺 ...
- Eclipse+Tomcat环境集成
1.下载Eclipse: 我用的Version: Mars.2 Release (4.5.2),直接在官网上下:http://www.eclipse.org/downloads/packages/re ...
- 高性能Javascript总结
一.加载和运行 Javascript代码执行会阻塞其他浏览器处理过程.充分利用webpack或gulp工具对文件打包压缩,减少js文件的数量,从而减少http请求的次数,以提高网页应用的实际性能. 二 ...
- 关于svn提交的时候强制写注释
本文固定链接: http://www.linuxyan.com/linux-service/229.html 转载请注明: admin 2012年09月29日 于 ㄨ销声匿迹.Linux 发表 在sv ...
- openstack No valid host was found. There are not enough hosts available.
root@dell-PowerEdge-T30:~# gedit /var/log/nova/nova-conductor.logroot@dell-PowerEdge-T30:~# gedit /v ...
- PHP高端课程
关于目后佐道IT教育 http://www.cnblogs.com/itpua/p/7710917.html 目后佐道IT教育的师资团队 http://www.cnblogs.com/itpua/p/ ...
- spark 的RDD各种转换和动作
今天先把spark的各种基本转换和动作总结下,以后有时间把各种用法放上去. 1 RDD基本转换操作 map.flagMap.distinct coalesce.repartition coale ...