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