DAY1
树形DP题,有一定思考难度(对于我),设f[i][j]表示保留i点时已留下j根枝条的最大苹果数目。
f[now][tot]=max(f[now][tot],f[tree[now][1]][i]+f[tree[now][2]][tot-i-1]+ans[now]);
好吧打了一个下午其实是一道sb题,但初始化错了,却得了60分,然后一直在改dp和状压,DAY2早上一眼看出来了,我无语了。。。
你甚至可以不用滚动数组,设f[i][j][k]表示i行时状态为j上一行状态为k时的最大数
f[i%3][s[k]][s[j]]=max(f[i%3][s[k]][s[j]],f[(i-1)%3][s[j]][s[g]]+cnt[s[k]]);