http://acm.hust.edu.cn/vjudge/contest/view.action?cid=105116#problem/H 紫书P282 员工和直属老板只能选一个,最多选多少人 思路:d(u,0)表示以U为根的子树,不选u点,则子节点可选可不选,f(u,0)表示不选u的唯一性 (1表示唯一,0,表示不唯一) d(u,1)以u为根的子树,选择u点,f(u,1)表示选择u的唯一性 转移方程:d(u,0) = sum{ max( d(v,0), d(v,1) ) },v是子节点,当d…
https://vjudge.net/problem/UVA-1220 题意: 公司里有n个人形成一个树状结构,即除了老板以外每个员工都有唯一的直属上司.要求选尽量多的人,但不能同时选择一个人和他的直属上司.输出最多能选多少人并判断是否唯一. 思路: 树的最大独立集问题.就是需要额外判定是否是唯一的. 因为输入的都是人名,所以首先就是用map容器来处理,上下属的关系就用vector容器来处理. d[u][1]表示以u为根的子树中,选u点能得到的最大人数,f[u][1]判断这种方案是否唯一. d[…
题意:在树的最大独立集的基础上,加上权值.求最大. 分析: 采用刷表的方式写记忆化,考虑一个点选和不选,返回方式pair 型. 首先,无根树转有根树,dp(root). 注意的是:u不选,那么他的子节点,可以选,或者不选.WA了无数次. #include <cstdio> #include <vector> #include <cmath> using namespace std; +; vector<int> G[maxn]; int a[maxn]; i…
Party at Hali-Bula Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 5660   Accepted: 2022 Description Dear Contestant, I'm going to have a party at my villa at Hali-Bula to celebrate my retirement from BCM. I wish I could invite all my co…
目录 求树的最大独立集,最小点覆盖,最小支配集 三个定义 贪心解法 树形DP解法 (有任何问题欢迎留言或私聊&&欢迎交流讨论哦 求树的最大独立集,最小点覆盖,最小支配集 三个定义 最大独立集:  对一个图选出尽量多的点组成一个集合,满足这些点之间没有边相连.所有独立集中,顶点数最多的称作最大独立集. 最小点覆盖:  对一个图选出尽量少的点组成一个集合,满足图中所有的边均有端点属于这个集合.所有覆盖集中,顶点数最少的称作最小点覆盖. 最小支配集:  对一个图选出尽量少的点组成一个集合,满足图…
Time limit :1000 ms :Memory limit :32768 kB: OS :Windows 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 for…
//虚拟树研究-CheckBox初步判断只能在第一列 procedure TWindowsXPForm.XPTreeInitNode(Sender: TBaseVirtualTree; ParentNode, Node: PVirtualNode; var InitialStates: TVirtualNodeInitStates); var Data: PEntry; begin if ParentNode = nil then //若为父节点 就位CheckBox样式 begin Inclu…
题意:  给定n个人,存在上下级关系,每个人只有一个上级,求最大独立集.并判断最大独立集是否唯一 思路:d[i][0]表示以i为根的子树中,不选择第i个节点的最大独立集,f[i][0]表示以i为根的子树中,不选择第i个节点的方案是否唯一.同理,d[i][1]和f[i][1]就是选择第i个节点的情况.   状态转移:d[i][0] = ∑max(d[v][0], d[v][1]), d[i][1] = ∑d[v][0];   唯一性的转移方程见代码: if(k == 1) { //选择节点u d[…
题目大意:数的最大独立集问题.特殊在要求回答答案是否唯一. 题目分析:定义状态dp(i,1),dp(i,0)分别表示以i为根节点的子树选不选i最多可选的人数,f(i,1),f(i,0)分别表示以i为根节点的子树选不选i的方案唯一性.则当选i时,i的子节点都不能选,否则,可选可不选,因此状态转移方程如下: dp(i,1)=sum(dp(j,0) 其中,j是i的子节点 dp(i,0)=sum(max(dp(j,1),dp(j,0))) 其中,j是i的子节点 至于当前状态的唯一性,则受下一步决策的唯一…
题意: 有一棵树,选出尽可能多的节点是的两两节点不相邻,即每个节点和他的子节点只能选一个.求符合方案的最大节点数,并最优方案判断是否唯一. 分析: d(u, 0)表示以u为根的子树中,不选u节点能得到的最大人数,f(u, 0)表示方案是否唯一. d(u, 1)表示选u节点能得到的最大人数,同理,f(u, 1)表示方案是否唯一. 状态的转移: d(u, 1)的计算:因为选了u节点,所以u的子节点都不能选.d(u, 1) = sum{ d(v, 0) | v是u的子节点 } f(u, 1)的计算:当…