题面

这道题是一道比较水的XXOI题;

我们可以发现,反着思考题目就变为了让所有叶子节点同时发出信号,然后这些信号同时到达根节点;

可以证明,这样答案不会改变;

那么我们可以自下而上dfs(),设f[u]表示以u为根,可以到达的最远距离;

那么很显然,对于点u,它对答案的贡献度就是num(它子节点的个数)*f[u]-sum(f[v]);

实现也比较容易,但要注意开long long;

#include <bits/stdc++.h>
#define inc(i,a,b) for(register int i=a;i<=b;i++)
#define LL long long
using namespace std;
int n,s;
struct littlestar{
int to;
int nxt;
LL w;
}star[2000010];
int head[2000010],cnt;
void add(int u,int v,LL w)
{
star[++cnt].to=v;
star[cnt].nxt=head[u];
head[u]=cnt;
star[cnt].w=w;
}
LL f[1000010],ans;
void dfs(int u,int fa)
{
LL sum=0;
int num=0;
for(int i=head[u];i;i=star[i].nxt){
int v=star[i].to;
if(v==fa) continue;
dfs(v,u);
++num;
f[u]=max(f[u],f[v]+star[i].w);
sum+=f[v]+star[i].w;
}
ans+=(f[u]*num-sum);
}
int main()
{
cin>>n>>s;
inc(i,1,n-1){
int u,v;
LL w;
scanf("%d%d%lld",&u,&v,&w);
add(u,v,w);
add(v,u,w);
}
dfs(s,0);
cout<<ans;
}

[ZJOI2007]时态同步 题解的更多相关文章

  1. BZOJ1060:[ZJOI2007]时态同步——题解

    http://www.lydsy.com/JudgeOnline/problem.php?id=1060 https://www.luogu.org/problemnew/show/P1131 小Q在 ...

  2. 【BZOJ1060】[ZJOI2007]时态同步 树形DP

    [BZOJ1060][ZJOI2007]时态同步 Description 小Q在电子工艺实习课上学习焊接电路板.一块电路板由若干个元件组成,我们不妨称之为节点,并将其用数字1,2,3-.进行标号.电路 ...

  3. BZOJ 1060: [ZJOI2007]时态同步( 树形dp )

    坑爹...数据是错的..详见discuss  http://www.lydsy.com/JudgeOnline/wttl/wttl.php?pid=1060 先求根到叶子的距离最大值x, 然后把所有叶 ...

  4. bzoj千题计划163:bzoj1060: [ZJOI2007]时态同步

    http://www.lydsy.com/JudgeOnline/problem.php?id=1060 以激发器所在节点为根 终止节点一定是叶节点 记录点的子树内最深的终止节点 然后从根往下使用道具 ...

  5. P1131 [ZJOI2007]时态同步(树形dp)

    P1131 [ZJOI2007]时态同步 设$f[i]$为与$i$与最远的点的距离 在dfs时每次更新的时候顺便统计一下长度,不同的话就改成最长的那条并更新答案 #include<iostrea ...

  6. 【BZOJ 1060】 1060: [ZJOI2007]时态同步 (树形DP)

    1060: [ZJOI2007]时态同步 Description 小Q在电子工艺实习课上学习焊接电路板.一块电路板由若干个元件组成,我们不妨称之为节点,并将其用数 字1,2,3….进行标号.电路板的各 ...

  7. 洛谷 P1131 [ZJOI2007]时态同步

    P1131 [ZJOI2007]时态同步   题目描述 小Q在电子工艺实习课上学习焊接电路板.一块电路板由若干个元件组成,我们不妨称之为节点,并将其用数字1,2,3….进行标号.电路板的各个节点由若干 ...

  8. Luogu P1131 [ZJOI2007]时态同步(dfs)

    P1131 [ZJOI2007]时态同步 题意 题目描述 小\(Q\)在电子工艺实习课上学习焊接电路板.一块电路板由若干个元件组成,我们不妨称之为节点,并将其用数字\(1,2,3,\dots\).进行 ...

  9. 【bzoj1060】[ZJOI2007]时态同步

    题目描述 小Q在电子工艺实习课上学习焊接电路板.一块电路板由若干个元件组成,我们不妨称之为节点,并将其用数字1,2,3-.进行标号.电路板的各个节点由若干不相交的导线相连接,且对于电路板的任何两个节点 ...

随机推荐

  1. 1、Qt应用程序

    新建Qt Widgets Application,基类选择QWidget Qt项目特点(参考上图):头文件名与类名一样,成对出现 main.cpp代码解释如下 #include "mywid ...

  2. install oh my zsh on ubuntu 16.04

    first,install zsh #安装zsh sudo apt-get install zsh #是否安装成功 cat /etc/shells #/bin/sh #/bin/bash #/bin/ ...

  3. vue中axios的封装(注意这里面异步的概念和用法十分重要)

    todo https://www.cnblogs.com/chaoyuehedy/p/9931146.html

  4. 客户端框架-MVP

    MVP Model-View-Presenter MVP是把MVC中的Controller换成了Presenter(呈现),目的就是为了完全切断View跟Model之间的联系,由Presenter充当 ...

  5. Python列表解析和字典解析

    python笔记_列表解析 相比于for循环,列表解析的语法是由底层c语言实现的,它和使用for循环遍历pyobject对象相比,性能会有很大的提升. 无条件子句的列表解析式 In [2]: [2*i ...

  6. .item布局设置分割线

    <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android=" ...

  7. Spring Boot使用阿里云证书启用HTTPS

    1.到阿里云下载证书页面下载证书 2.根据页面内容,可以使用2种证书:PFX JKS 把对应证书放到src/main/resources目录下 在application.properties文件中加入 ...

  8. 191112Django fbv和cbv

    cbv:类.base.view fbc:函数.base.view from django.contrib import admin from django.urls import path from ...

  9. MacPorts镜像

    /opt/local/etc/macports/macports.conf: rsync_server pek.cn.rsync.macports.org rsync_dir macports/rel ...

  10. 威胁猎杀实战(三):基于Wazuh, Snort/Suricata和Elastic Stack的SOC

    https://www.secpulse.com/archives/81629.html