tyvj 1052 没有上司的舞会 树形DP
2011-01-17 22:19
260 查看
| |||
|
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
using namespace std;
int n;//人数
int h[6000];//高兴指数
vector<int> G[6000];//下属
int boss[6000];//老板
int f[60000][2];//以i为根,f[i][1]表示i出席的最大值,f[i][0]表示i不出席的最大值
void dfs(int k)
{
for(int j=0;j<G[k].size();j++)
{
int i=G[k][j];
dfs(i);
//如果老板出席,那么他的手下就不出席
f[k][0]+=max(f[i][0],f[i][1]);
f[k][1]+=f[i][0];
}
f[k][1]+=h[k];
}
int main()
{
while(scanf("%d",&n)==1)
{
for(int i=1;i<=n;i++) scanf("%d",&h[i]);
memset(boss,0,sizeof(boss));
memset(f,0,sizeof(f));
int x,y;
while(scanf("%d%d",&x,&y)==2,x||y)
{
G[y].push_back(x);
boss[x]=y;
}
for(int i=1;i<=n;i++)
{
if(boss[i]==0)//根节点
{
dfs(i);//树形DP
printf("%d/n",max(f[i][0],f[i][1]));
break;
}
}
}
return 0;
}
相关文章推荐
- Tyvj 1052 没有上司的舞会 树形dp
- 【tyvj1052】【树状dp】没有上司的舞会
- Codevs 1380 没有上司的舞会 [树形dp]
- 没有上司的舞会 (树形DP)
- 没有上司的舞会--经典树形DP
- 树形dp最大独立集(洛谷1352 没有上司的舞会)
- 洛谷p1352没有上司的舞会 树形dp
- [洛谷 1352]没有上司的舞会---树形DP
- 洛谷P1352 没有上司的舞会——树形DP
- 没有上司的舞会(树形dp裸题)
- [Tyvj 1052] 没有上司的舞会
- codevs 1380 没有上司的舞会(树形dp)
- 树形dp——没有上司的舞会
- CodeVS 1380 没有上司的舞会(树形DP)
- 【树形dp】没有上司的舞会
- 没有上司的舞会 树形DP 经典题目
- [树形DP入门]没有上司的舞会
- 树形DP--codevs 1380 没有上司的舞会
- 洛谷 1352 没有上司的舞会 树形DP
- codevs 1380 没有上司的舞会 树形DP