HDU 1520 樹形dp裸題

2022-03-04 12:33:26 字數 1086 閱讀 1693

1、hdu 1520  anniversary party

2、總結:第一道樹形dp,有點糾結

題意:公司聚會,員工與直接上司不能同時來,求最大權值和

#include#include

#include

#include

#include

#include

#define max(a,b) a>b?a:b

using

namespace

std;

#define ll long long

#define inf 0x3f3f3f3f

const

int n=6010

;struct

eage

eage[n

<<1

];int val[n],out

[n];

int dp[n][2]; //

dp[i][0]表示i不去,dp[i][1]表示i去

int ans,head[n]; //

head記錄邊的次序

void add_eage(int a,int b) //

難點,理解邊,構樹

void dfs(int

root)

}int

main()

memset(

out,0,sizeof(out

)); memset(head,-1,sizeof

(head));

inta,b;

ans=0

;

while(scanf("

%d%d

",&a,&b),a||b)

introot;

for(int i=1;i<=n;i++)

}memset(dp,

0,sizeof

(dp));

dfs(root);

printf(

"%d\n

",max(dp[root][0],dp[root][1

]));

}return0;

}

view code

HDU1520(樹形dp入門題)

題意 在乙個有根樹上每個節點有乙個權值,每相鄰的父親和孩子只能選擇乙個,問怎麼選擇總權值之和最大。思路 樹形dp的常規入門題 設dp i 0 表示 當前這個點不選,dp i 1 表示當前這個點選擇的最優解。轉移方程 dp cur 0 max dp son 1 dp son 0 當前這個點不選,那他的...

HDU 1520 簡單樹形dp

題意 乙個大學要舉行職工party。為使party中每個人都玩的開心,直接上司和下屬關係的員工不能同時參加。每個人都有各自的歡樂值。問如何邀請使得總歡樂值最大。dp i 1 表示選擇i點 dp i 0 表示不選擇i點 include include include include using nam...

HDU1520 樹形dp入門)

解題思路 設dp i 0 表示 當前這個點不選,dp i 1 表示當前這個點選擇的最優解。轉移方程 dp cur 0 max dp son 1 dp son 0 當前這個點不選,那他的孩子可選可不選,取 最大的。dp cur 1 dp son 0 當前這點選擇,那他的孩子就不能選擇。include ...