P1352 没有上司的舞会

题目描述

某大学有N个职员,编号为1~N。他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司。现在有个周年庆宴会,宴会每邀请来一个职员都会增加一定的快乐指数Ri,但是呢,如果某个职员的上司来参加舞会了,那么这个职员就无论如何也不肯来参加舞会了。所以,请你编程计算,邀请哪些职员可以使快乐指数最大,求最大的快乐指数。

输入输出格式

输入格式:

第一行一个整数N。(1<=N<=6000)

接下来N行,第i+1行表示i号职员的快乐指数Ri。(-128<=Ri<=127)

接下来N-1行,每行输入一对整数L,K。表示K是L的直接上司。

最后一行输入0 0

输出格式:

输出最大的快乐指数。

输入输出样例

输入样例#1:

7
1
1
1
1
1
1
1
1 3
2 3
6 4
7 4
4 5
3 5
0 0
输出样例#1:

5
——————————————————————————————————我是华丽丽的分割线———————————————————————————————— 树形动规果题。
 /*
Problem:P1352 没有上司的舞会
OJ: 洛谷
User: S.B.S.
Time: 27 ms
Memory: 16992 kb
Length: N/A
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<queue>
#include<cstdlib>
#include<iomanip>
#include<cassert>
#include<climits>
#include<functional>
#include<bitset>
#include<vector>
#include<list>
#include<map>
#define F(i,j,k) for(int i=j;i<=k;i++)
#define M(a,b) memset(a,b,sizeof(a))
#define FF(i,j,k) for(int i=j;i>=k;i--)
#define maxn 10001
#define inf 0x3f3f3f3f
#define maxm 1001
#define mod 998244353
//#define LOCAL
using namespace std;
int read(){
int x=,f=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
while(ch>=''&&ch<=''){x=x*+ch-'';ch=getchar();}
return x*f;
}
int n,m;
int x,y,k;
int cnt,c[maxn],head[maxn];
bool b[maxn];
int f[maxn][];
vector <int> edge[maxn];
void dfs(int u)
{
int a,b;
for(int i=;i<edge[u].size();i++)
{
dfs(edge[u][i]);
f[u][]+=max(f[edge[u][i]][],f[edge[u][i]][]);
f[u][]+=f[edge[u][i]][];
}
f[u][]+=c[u];
}
int main()
{
std::ios::sync_with_stdio(false);//cout<<setiosflags(ios::fixed)<<setprecision(1)<<y;
#ifdef LOCAL
freopen("data.in","r",stdin);
freopen("data.out","w",stdout);
#endif
int n,m;
cin>>n;
for(int i=;i<=n;i++) cin>>c[i];
int x,y;
for(int i=;i<=n;i++)
{
cin>>x>>y;
if(x==&&y==) break;
else
{
edge[y].push_back(x);
b[x]=true;
}
}
for(int i=;i<=n;i++)
{
if(b[i]==false)
{
dfs(i);
cout<<max(f[i][],f[i][])<<endl;
break;
}
}
return ;
}

p1352

最新文章

  1. Windows群集安装
  2. linux无线配置
  3. 电够动力足&mdash;&mdash;认识主板上的CPU供电模块
  4. KSImageNamed-Xcode-master 对项目中图片提供自动提示功能的插件
  5. 教程:如何减小iOS应用程序的大小?
  6. codeforces 630A Again Twenty Five!
  7. mybatis什么时候用resulttype 什么时候用resultmap
  8. YASnippet - emacs 的代码片段管理工具
  9. 【转】配置不当引起高危漏洞?看加密货币交易所如何正确用Spring Boot Actuaotr框架
  10. POJ 2299树状数组求逆序对
  11. Python中threading的join和setDaemon的区别及用法
  12. bzoj4278
  13. Can't use Subversion command line client***Probably the path to Subversion executable is wrong. Fix
  14. PAT 1080 MOOC期终成绩(25)(STL-map及multiset+思路+测试点分析)
  15. python threading模块2
  16. MacOS &amp; dock 工具栏 &amp; 外接显示器 &amp; 主屏
  17. ubuntu下 apache phpmyadmin 的安装和使用
  18. [转]jQuery 读取 xml
  19. css 之单行文本显示省略和多行文本省略
  20. 算法的泛化过程(摘自《STL源码剖析》)

热门文章

  1. R语言编程艺术(5)R语言编程进阶
  2. 洛谷AC200纪念
  3. 聊聊zookeeper的分布式锁
  4. CSS3选择器02—CSS3部分选择器
  5. html (第四本书第1~3章参考)
  6. 基于.htaccess的Web Shell工具htshells
  7. Web大前端面试题-Day1
  8. windows系统,联系人文件。个性化。
  9. BZOJ.4816.[SDOI2017]数字表格(莫比乌斯反演)
  10. 2017-2018-2 20172302 『Java程序设计』课程 结对编程练习_四则运算