HDU 5534 完全背包
阿新 • • 發佈:2017-11-22
size const set src include sin blog () 題目
題目把Partial 都搬出來了,其實是有這樣的定理,說一個長度為n-2的序列,(1~n)一定可以對應一棵樹。
叉姐的思路:
其實也可以看成完全背包。
n-2個度的分派,每種度是一個物品,而且可以選很多次——完全背包了
然後要減去f(1),首先是默認的度都為1.
#include <bits/stdc++.h> using namespace std; const int MAXN = 2020; int f[MAXN]; int d[MAXN]; int main() { //freopen("in.txt","r",stdin);int T_T; scanf("%d",&T_T); while(T_T--) { int n; scanf("%d",&n); for(int i = 1; i <= n-1; i++) scanf("%d",&f[i]); memset(d,-1e9-7,sizeof(d)); d[0] = n*f[1]; for(int i = 1; i <= n-2; i++) { for(int j = 0; j <= n-2; j++) { if(j>=i) d[j] = max(d[j],d[j-i]+f[i+1]-f[1]); } } cout<<d[n-2]<<endl; } return 0; }
HDU 5534 完全背包