题意不多说。
曰:
呃,首先显然这是一个树形DP。
然后我不会什么高大上的算法,我只能提供一种非常慢,但是能在BZ切的算法(因为是总时限并且还有O2)。
题解:
不需要新建树,这个树就行。
首先这道题一眼就能想到树形背包。。但是树形背包怎么做呢?
因为需要合成,所以这里的状态F[i][j][k]并不是i节点有j个花费为k时的最大收益,而是i节点给其父亲j个花费k时的最大收益(不含父亲收益)。好吧,这个我自己没想出来,但是或许我可以给你讲讲怎么想出来。
我们考虑这道题有两个难点:
题意不多说。
曰:
呃,首先显然这是一个树形DP。
然后我不会什么高大上的算法,我只能提供一种非常慢,但是能在BZ切的算法(因为是总时限并且还有O2)。
题解:
不需要新建树,这个树就行。
首先这道题一眼就能想到树形背包。。但是树形背包怎么做呢?
因为需要合成,所以这里的状态F[i][j][k]并不是i节点有j个花费为k时的最大收益,而是i节点给其父亲j个花费k时的最大收益(不含父亲收益)。好吧,这个我自己没想出来,但是或许我可以给你讲讲怎么想出来。
我们考虑这道题有两个难点: