题目大意
太平王世子事件后,陆小凤成了皇上特聘的御前一品侍卫。
皇宫以午门为起点,直到后宫嫔妃们的寝宫,呈一棵树的形状;某些宫殿间可以互相望见。大内保卫森严,三步一岗,五步一哨,每个宫殿都要有人全天候看守,在不同的宫 殿安排看守所需的费用不同。
可是陆小凤手上的经费不足,无论如何也没法在每个宫殿都安置留守侍卫。帮助陆小凤布置侍卫,在看守全部宫殿的前提下,使得花费的经费最少。
分析
首先定义:
F[T,1] 表示在x点放置守卫的最小费用
F[T,2] 表示在x点不放置守卫,同时x点可以或没有儿子节点可以监视到
F[T,3] 表示在x点不放置守卫,同时x点一定要给儿子节点监视到
转移方程为F[x,1]=sigma{min(F[y,1],F[y,2],F[y,3])}+w[x]
F[x,2]=sigma{min(F[y,1],F[y,3])}
F[x,3]=sigma{min(F[z,1],F[z,3])+F[y,1]} y<>z y,z分别为x的子节点
具体见:http://blog.csdn.net/fisher_jiang/article/details/2488506
代码
var
a:array[0..7000,0..7000] of longint;
f:array[0..7000,0..2] of longint;
w:array[0..7000] of longint;
v:array[0..7000] of boolean;
i,j,k,l:longint;
n,m:longint;
function min(x,y:longint):longint;
begin
if x