luoguP1131

。。。这道题我也不知道咋\(A\)的。

思路:

\(anst\) 距离 \(s\) 的最长距离,\(ansp\) 某一节点到祖先所有边的权值和这些些加过的权值和

先求出到\(s\)距离最长的点,其他点通过使用道具增加到这个点的长度。对于每一个节点,记录一个它的子节点到它的距离最长的点(距离\(dis[u]\))。在\(u\)到它父亲的边上加\(anst-ansp-dis[u]\),\(ans\)也加上\(anst-ansp-dis[u]\)。

。。。 解释得不太清楚

#include<iostream>
#include<cstdio>
#include<cstring>
#define LL long long
using namespace std;
const int N = 500005;
int head[N],n,tot,s,m[N];
struct edge{
int node,next,data;
}e[N<<1];
long long ans,anst,dis[N];
void add(int x,int y,int z)
{
e[++tot].node=y; e[tot].data=z;
e[tot].next=head[x]; head[x]=tot;
}
inline int read()
{
int ans=0,w=1;
char c=getchar();
while((c<'0'||c>'9')&&c!='-') c=getchar();
if(c=='-') { w=-1; c=getchar(); }
while(c>='0'&&c<='9')
{ ans=ans*10+c-'0'; c=getchar(); }
return ans*w;
}
void dfs(int u,int fa)
{
for(int i=head[u];i;i=e[i].next)
{
int v=e[i].node;
if(v==fa) continue;
dfs(v,u);
if(dis[v]+e[i].data>dis[u])
dis[u]=dis[v]+e[i].data,m[u]=v;
}
}
void dfs1(int u,int fa,LL ansp)
{
ans+=(anst-dis[u]-ansp),ansp+=(anst-dis[u]-ansp);
for(int i=head[u];i;i=e[i].next)
{
int v=e[i].node;
if(v==fa) continue;
dfs1(v,u,ansp+e[i].data);
}
}
int main()
{
// memset(dis,0x7f,sizeof(dis));
n=read(); s=read();
int x,y,z;
for(int i=1;i<n;i++)
{
x=read(); y=read(); z=read();
add(x,y,z); add(y,x,z);
}
dfs(s,0);
anst=dis[s];
dfs1(s,0,0);
printf("%lld\n",ans);
return 0;
}

最新文章

  1. 初识JAVA(二)(送给Java和安卓初学者)----常见错误
  2. 使用mvn archetype:generate生产maven工程,响应很慢
  3. 希尔排序及希尔排序java代码
  4. bzoj3033
  5. Centos7的安装、Docker1.12.3的安装,以及Docker Swarm集群的简单实例
  6. Sublime Text 安装sftp插件
  7. 将JSON转成DataSet(DataTable)
  8. ant简述
  9. jquery 插件页面回到顶部
  10. eclipse调试的基本意义
  11. android:ellipsize的使用
  12. 【移动开发】Android中WIFI开发总结(二)
  13. label不换行的问题
  14. MyEclipse2014web工程项目直接复制不能访问报错处理方案
  15. Linux最小化安装
  16. OpenCV 之 空间滤波
  17. 液晶流在齐次 Besov 空间中的正则性准则
  18. C#/对线程的认识
  19. C++学习笔记49:栈
  20. 多线程 ForkJoinPool

热门文章

  1. vue中怎么全局引入sass文件
  2. mysql8.0 Server 在Windows平台中的安装、初始化和远程访问设置
  3. python 三元运算符、推导式、递归、匿名函数、内置函数
  4. 单元测试之Fixture
  5. (最详细)小米Note 3的Usb调试模式在哪里打开的流程
  6. Python 学习笔记 - 不断更新!
  7. Educational Codeforces Round 63 Div. 2
  8. Luogu4492 [HAOI2018]苹果树 【动态规划】
  9. 【简】题解 AWSL090429 【噪音】
  10. spring IOC与AOP