洛谷 p1352 没有上司的舞会 题解
2016-09-30 16:29
253 查看
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=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*f; } int n,m; int x,y,k; int cnt,c[maxn],head[maxn]; bool b[maxn]; int f[maxn][2]; vector <int> edge[maxn]; void dfs(int u) { int a,b; for(int i=0;i<edge[u].size();i++) { dfs(edge[u][i]); f[u][0]+=max(f[edge[u][i]][0],f[edge[u][i]][1]); f[u][1]+=f[edge[u][i]][0]; } f[u][1]+=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=1;i<=n;i++) cin>>c[i]; int x,y; for(int i=1;i<=n;i++) { cin>>x>>y; if(x==0&&y==0) break; else { edge[y].push_back(x); b[x]=true; } } for(int i=1;i<=n;i++) { if(b[i]==false) { dfs(i); cout<<max(f[i][1],f[i][0])<<endl; break; } } return 0; }
p1352
相关文章推荐
- 洛谷 p1352 没有上司的舞会 题解
- 【洛谷 P1352】【codevs1380】没有上司的舞会
- 洛谷 P1352 没有上司的舞会
- 洛谷 P1352 TYVJ P1052 CODEVS 1380 没有上司的舞会
- POJ 2342 Anniversary party 洛谷 P1352 没有上司的舞会
- 洛谷 P1352 没有上司的舞会
- 洛谷1352 没有上司的舞会
- [P1352]没有上司的舞会
- 洛谷 1352 没有上司的舞会
- 洛谷1352 没有上司的舞会
- 【洛谷1352】 没有上司的舞会
- 【洛谷1352】 没有上司的舞会
- 【洛谷 2016】战略游戏 树形dp经典题目(类似没有上司的舞会)
- 洛谷 1352 没有上司的舞会 树形DP
- 洛谷——P1352 没有上司的舞会
- [洛谷 1352]没有上司的舞会---树形DP
- 树形dp最大独立集(洛谷1352 没有上司的舞会)
- P1352没有上司的舞会
- P1352 没有上司的舞会
- 【CODEVS1380】没有上司的舞会