HDOJ 1520 Anniversary party
来源:互联网 发布:mac常用软件2016 编辑:程序博客网 时间:2024/06/05 17:37
树形DP。。。。在树上做DP。。。。不应该是猴子干的事吗?
Anniversary party
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 3563 Accepted Submission(s): 1648
Problem Description
There is going to be a party to celebrate the 80-th Anniversary of the Ural State University. The University has a hierarchical structure of employees. It means that the supervisor relation forms a tree rooted at the rector V. E. Tretyakov. In order to make the party funny for every one, the rector does not want both an employee and his or her immediate supervisor to be present. The personnel office has evaluated conviviality of each employee, so everyone has some number (rating) attached to him or her. Your task is to make a list of guests with the maximal possible sum of guests' conviviality ratings.
Input
Employees are numbered from 1 to N. A first line of input contains a number N. 1 <= N <= 6 000. Each of the subsequent N lines contains the conviviality rating of the corresponding employee. Conviviality rating is an integer number in a range from -128 to 127. After that go T lines that describe a supervisor relation tree. Each line of the tree specification has the form:
L K
It means that the K-th employee is an immediate supervisor of the L-th employee. Input is ended with the line
0 0
L K
It means that the K-th employee is an immediate supervisor of the L-th employee. Input is ended with the line
0 0
Output
Output should contain the maximal sum of guests' ratings.
Sample Input
7
1
1
1
1
1
1
1
1 3
2 3
6 4
7 4
4 5
3 5
0 0
Sample Output
5
Source
Ural State University Internal Contest October'2000 Students Session
Recommend
linle
#include <iostream>
#include <cstdio>
#include <cstring>
#include <vector>
using namespace std;
int valu[7000],dp[7000][2],N,L,K;
bool isson[7000];
vector<int> g[7000];
void dfs(int u,int fa)
{
//printf("%d--->%d\n",u,g.size());
for(int i=0;i<g.size();i++)
{
int v=g;
if(v==fa) continue;
dfs(v,u);
}
int qu=0,buqu=0;
if(g.size()==1)
{
//printf("...%d\n",u);
}
for(int i=0;i<g.size();i++)
{
int v=g;
if(v==fa) continue;
qu=max(qu,qu+dp[v][0]);
buqu=max(buqu+dp[v][1],max(dp[v][0]+buqu,buqu));
}
dp[0]=buqu;
dp[1]=qu+valu;
}
int main()
{
while(scanf("%d",&N)!=EOF)
{
for(int i=1;i<=N;i++)
{
scanf("%d",valu+i);
g.clear();
}
memset(isson,false,sizeof(isson));
memset(dp,0,sizeof(dp));
while(scanf("%d%d",&L,&K)!=EOF)
{
if(L==0&&K==0) break;
isson[L]=true;
g[L].push_back(K);
g[K].push_back(L);
}
int root=-1;
for(int i=1;i<=N;i++)
{
if(!isson)
{
root=i; break;
}
}
dfs(root,-1);
printf("%d\n",max(dp[root][1],dp[root][0]));
}
return 0;
}
* This source code was highlighted by YcdoiT. ( style: Codeblocks )#include <cstdio>
#include <cstring>
#include <vector>
using namespace std;
int valu[7000],dp[7000][2],N,L,K;
bool isson[7000];
vector<int> g[7000];
void dfs(int u,int fa)
{
//printf("%d--->%d\n",u,g
for(int i=0;i<g
{
int v=g
if(v==fa) continue;
dfs(v,u);
}
int qu=0,buqu=0;
if(g
{
//printf("...%d\n",u);
}
for(int i=0;i<g
{
int v=g
if(v==fa) continue;
qu=max(qu,qu+dp[v][0]);
buqu=max(buqu+dp[v][1],max(dp[v][0]+buqu,buqu));
}
dp
dp
}
int main()
{
while(scanf("%d",&N)!=EOF)
{
for(int i=1;i<=N;i++)
{
scanf("%d",valu+i);
g
}
memset(isson,false,sizeof(isson));
memset(dp,0,sizeof(dp));
while(scanf("%d%d",&L,&K)!=EOF)
{
if(L==0&&K==0) break;
isson[L]=true;
g[L].push_back(K);
g[K].push_back(L);
}
int root=-1;
for(int i=1;i<=N;i++)
{
if(!isson
{
root=i; break;
}
}
dfs(root,-1);
printf("%d\n",max(dp[root][1],dp[root][0]));
}
return 0;
}
0 0
- hdoj 1520 Anniversary Party
- HDOJ 1520 Anniversary party
- HDOJ 1520 Anniversary party
- hdoj 1520 Anniversary party(树形dp)
- Hdoj 1520&Poj2342 Anniversary party 【树形DP】
- hdoj 1520 Anniversary party 【树形DP入门】
- hdoj - 1520 - Anniversary party(基础树形DP)
- HDOJ 题目1520 Anniversary party(树形dp)
- HDU 1520 Anniversary party
- HDU-1520-Anniversary party
- HDU-1520-Anniversary party
- HDU 1520(Anniversary party)
- HUD 1520 Anniversary party
- HDU 1520 Anniversary party
- hdu 1520 Anniversary party
- Hdu 1520 Anniversary party
- HDU 1520 Anniversary party
- hdu 1520 Anniversary party
- ActiveReports 报表应用教程 (13)---嵌入第三方控件
- UESTC 1852 Traveling Cellsperson
- ActiveReports 报表应用教程 (14)---数据可视化
- HDOJ 4734 F(x)
- ActiveReports 报表应用教程 (15)---报表换肤
- HDOJ 1520 Anniversary party
- ActiveReports 报表应用教程 (16)---报表导出
- HDOJ 3709 Balanced Number
- ActiveReports 区域报表中的事件介绍
- 在Silverlight中动态绑定页面报表(PageReport)的数据源
- HDOJ 2929 Bigger is Better
- 绑定Oracle Database 到 ActiveReport
- Codeforces Round #202 (Div. 2) A,B
- Solr 4.10.1 + tomcat 7 + zookeeper + HDFS 集成 (SolrCloud+HDFS)配置
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
齐铁一中校园网
校园网图书馆
校园网屏蔽
红岭中学校园网
绿色圃校园网
电信校园网wifi
辽工大校园网
校园网注册
校园网密码
校园网免费wifi
广中医校园网
哈工程校园网
校园网推广
校园网地址
校园网监控方案
杨村一中校园网
校园网账号
校园网宽带
校园网电信
wlan校园网
校园网太卡
代中校园网
哈理工校园网
校园网用户管理
惠贞书院校园网
校园网破解wifi
校园网下线
汤溪中学校园网
校园网怎么连
校园网一卡通
怎么连校园网
西农校园网
电信校园网套餐
星光校园网
校园网设计方案
三职校园网
广商校园网
涉外校园网
校园网管理软件
校园网分享
校园网计费网关