HDU 1520

入门树形dp 要求选择了该节点则不能选择该节点的父亲 

所以相应的状态转移方程为

dp[fa][0]+=max(dp[son][1],dp[son][0])

dp[fa][1]+=max(dp[son][0],dp[fa][1])

#include
#include
#include
#include
#include
using namespace std;
#define maxn 6005
int n,vis[maxn];
struct node
{
    int v,fa;
    vectorch;
}s[maxn];
int dp[maxn][2];
void find(int cur)
{
    vis[cur]=1;
    for(int i=0;i


你可能感兴趣的:(DP)