首页 > TAG信息列表 > P1352
P1352 没有上司的舞会
没有上司的舞会 题目描述 某大学有 \(n\) 个职员,编号为 \(1\ldots n\)。 他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司。 现在有个周年庆宴会,宴会每邀请来一个职员都会增加一定的快乐指数 \(r_i\),但是呢,如果某个职员的直接上司来参加舞P1352 SSL 1607 没有上司的晚会(链式前向星)
题目描述: 题目传送门 解题思路: 根据题意可得这道题就是在一棵树上选择若干个点,使得点权最大,其中选点满足两个条件: 选了父节点就不能选子节点选了子节点就不能选父节点 显然,题目的当务之急是如何在程序中存储一棵树,或者说存储一张图,这时候通俗的邻接矩阵就在空间上出现了缺陷P1352 没有上司的舞会 (树形dp
添加链接描述 #include<bits/stdc++.h> using namespace std; const int N=6e3+9; int n,w[N]; int idx,e[N],ne[N],h[N],dp[N][2]; void add(int a,int b){ e[idx]=b,ne[idx]=h[a],h[a]=idx++; } void dfs(int u){ dp[u][0]=0; dp[u][1]=w[u]; for(int i=h[洛谷P1352—没有上司的舞会(树形DP)
树形DP就是在树的基础上做动态规划 树形DP有两个方向: 1.叶->根,回溯是从叶子结点往上更新 2.根->叶,往往是在从叶往根dfs一遍之后(相当于预处理),再重新往下获取最后的答案。 题意 某大学有 n 个职员,编号为 1…n。 他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就做题记录 Luogu P1352
Luogu P1352 没有上司的舞会 树形 dp 模板题。 真的好像所有 dp 都可以写记忆化搜索(yyds! #include<bits/stdc++.h> using namespace std; #define N 100005 int f[N][2], first[N], Next[N], to[N], h[N], vis[N], tot, n; void add(int x, int y) { Next[++tot] = first[x]; fi洛谷P1352 没有上司的舞会
Luogu P352 没有上司的舞会 传送门 题意即无相邻两点的点集的和的最大值 正解 显然是个树形DP,f[i] [0/1]表示在i节点及其子树上不选i/选i的最大和 但是正解没意思 乱搞 思路 讲讲乱搞的做法: 显然的,有一种贪心方法是“能取则取”, 然而非常好卡 在此基础上我们进行瞎整优化 对于每一P1352 没有上司的舞会
老师让复习二叉树,我旁边的zjy大佬直接给了我一堆树的题,然后就有了这道树形DP的题 还没学会爬就开始跑了??? 题目也非常非常清楚地告诉了你,这道题是树啊!!!每个职员都有一个快乐指数,如果职员直接上司(父亲)去了,那职员就不能去 真实,求怎么样才能最快乐(???) 既然是树,首先就要找到他的根节点,对于这P1352 没有上司的舞会 题解
CSDN同步 原题链接 简要题意: 给定一棵树,有点权,求 最大点权的点集使得该点集的点两两不相邻。“相邻” 的定义为 两点属于同一条边的两个端点 。 显然,\(n \leq 6 \times 10^3\) 可以考虑 \(O(n^2)\) 的办法。但是显然可以有更优的做法。 用 \(f_i\) 表示 在以 \(i\) 为根的子树中(\(洛谷P1352 没有上司的舞会(树形DP+记忆化)
题目描述 某大学有 nnn 个职员,编号为 1…n1\ldots n1…n。 他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司。 现在有个周年庆宴会,宴会每邀请来一个职员都会增加一定的快乐指数 rir_iri,但是呢,如果某个职员的直接上司来参加舞会了,那么这洛谷-P1352 没有上司的舞会
题意: 某大学有 n 个职员,编号为 1~n 他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司。 现在有个周年庆宴会,宴会每邀请来一个职员都会增加一定的快乐指数 ,但是呢,如果某个职员的直接上司来参加舞会了,那么这个职员就无论如何也不肯来参加舞洛谷 P1352 没有上司的舞会(树形dp)
传送门 解题思路 就是一道树形dp的模板。 偷得课件QAQ: 这个题用dp[i][0]表示i不去时以i为根的子树的最大快乐指数, dp[i][1]表示i去时以i为根的子树的最大快乐指数。 然后转移方程就很容易写出来了。见代码。 最后要注意输入的u,v是v是u的上司。 AC代码 1 #include<【树形DP】P1352 没有上司的舞会
1 #include<iostream> 2 #include<string> 3 #include<queue> 4 #include<stack> 5 #include<vector> 6 #include<map> 7 #include<cstdio> 8 #include<cstdlib> 9 #include<algorithm>10 #include<set>11 #inc洛谷-P1352没有上司的舞会
基本思路 树形dp入门题,0表示不选中1表示选中。 \[ \begin{array}{l} treedp[u][0]=max(treedp[u.boss][0],treedp[u.boss][1])\\ treedp[u][1]=treedp[u.boss][0]+arr[u]; \end{array} \] #include<bits/stdc++.h> using namespace std; vector<int>boss[7000]; int arr[7000]P1352 没有上司的舞会[树形dp]
题目描述 某大学有N个职员,编号为1~N。他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司。现在有个周年庆宴会,宴会每邀请来一个职员都会增加一定的快乐指数Ri,但是呢,如果某个职员的上司来参加舞会了,那么这个职员就无论如何也不肯来参加舞会了