Test

Posted chaseno1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Test相关的知识,希望对你有一定的参考价值。

题意:

一棵\(n\)个点的树,询问每个点距离其他点的最远距离。

分析:

距离这个点的最远距离点无非有两种情况,一种在这个点的子树中,一种是在这个点的父亲节点往上走的点。
\(dp[u][0]\)表示\(u\)节点子树中的最远距离
\(dp[u[1]\)表示\(u\)节点子树中的次远距离
\(dp[u][2]\)表示不在\(u\)节点子树中的最远距离
\(u\)\(v\)的父节点,则有状态转移方程:
\(I.\)叶子节点\(\rightarrow\)根节点
\(dp[u][1]=dp[u][0],dp[u][0]=dp[v][0]+w,if(dp[x][0]<dp[v][0]+w)\)
\(dp[u][1]=max(dp[u][1],dp[v][0]+w),if(dp[x][0]<=dp[v][0]+w)\)
\(II.\)根节点\(\rightarrow\)叶子节点
\(dp[v][2]=max(dp[u][2]+w,dp[u][1]+w),if(dp[v][0]+w=dp[u][0])\)
\(ps:\)这个方程表示\(v\)\(u\)的最长链上
\(dp[v][2]=max(dp[u][2]+w,dp[u][1]+w),if(dp[v][0]+w =\not dp[u][0])\)
这个则否。
\(I.\)中是更新每个节点的子树的最大值和次大值。
\(II.\)有了子树的最大值和次大值就能完全确定最大值。
得用次大值的原因是:有可能一个节点就在他的父亲节点的最长链上,所以就不能根据父亲节点的最长链来转移而是父亲的次长链。

以上是关于Test的主要内容,如果未能解决你的问题,请参考以下文章

请教shell脚本处理带空格的文件名

python argparse中的多个参数

call和apply的使用

textarea 删除白线?

在MySql中、怎样根据年份或者月份查询数据表中的数据?

linux 文件操作命令 touchcatmorelessheadtail