P3629 [APIO2010]巡逻

Posted thedreammaker

tags:

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

今天在机房里考了这题。。。。。lbw巨佬一下考场就开始大喊“第二题把直径赋为-1再跑一次直径就行”,作为一个蒟蒻也没有啥好说的,自己弱,没办法。 下午再想这道题,忽然有个暴力的想法。

首先,加一条边就会使一条链(就是这条边连接的两点形成的链)上的边只用被走一遍。(这很显然)

所以,令dp[i][j]表示i节点状态为j的所有因为连边而只需要走一遍的链的最大长度。

那么我们把所有因为连边而只需要走一遍的边从树里挑出来,只可能有几种状态:

1.一条经过i节点的链。

2.一条不经过i节点的链。

3.一条以i节点为一个端点的链。

4.两条链,一条链的一个端点为i节点,另外一条不经过i节点。

5.两条链,都不经过i节点。

6.两条链,一条链的一个端点为i节点,另外一条经过i节点。

7.两条链,都经过i节点。

(个人感觉上面这些状态应该还有可以再合并的)

然后互相转移一下就行了.

复杂度O(n*常数)

常数的上界应该是50吧(如果这7种状态都有效且都能互相转移的话)。

反正能过。

以上是关于P3629 [APIO2010]巡逻的主要内容,如果未能解决你的问题,请参考以下文章

洛谷 P3629 [APIO2010]巡逻

P3629 [APIO2010]巡逻

BZOJ1912 APIO2010 洛谷P3629 巡逻

[APIO 2010] 巡逻

BZOJ 1912:[Apio2010]patrol 巡逻(树直径)

[APIO2010]巡逻