https://ac.nowcoder.com/acm/problem/24953 题目描述:给出一棵树,选最小的点把所以边覆盖。 思路: ? dp[i][0]:选点i,并且以点i为根的子树都被覆盖了。 ? dp[i][1]:不选点i,i被其儿子覆盖 ? dp[i][2]:不选点i,i没有被子节点覆 ...
分类:
Web程序 时间:
2020-08-10 23:16:45
阅读次数:
91
三色树 给出一个N个节点的无根树,每条边有非负边权,每个节点有三种颜色:黑,白,灰。一个合法的无根树满足:树中不含有黑色结点或者含有至多一个白色节点。现在希望你通过割掉几条树边,使得形成的若干树合法,并最小化割去树边权值的和。 第一行一个正整数N,表示树的节点个数。第二行N个整数Ai,表示i号节点的 ...
分类:
其他好文 时间:
2020-07-23 23:08:02
阅读次数:
123
题:http://acm.hdu.edu.cn/showproblem.php?pid=6725 分析:给节点选值肯定是选边界值。假设由节点是选中间值,那么肯定有比它选值更好的值,所以把选的可能定为2个。 #include<bits/stdc++.h> using namespace std; #d ...
分类:
其他好文 时间:
2020-07-20 00:01:14
阅读次数:
96
A - Distance in Tree CodeForces - 161D 题目大意:树是一个不包含任何圈的连通图。树的两个节点之间的距离是节点之间最短路径的长度(也就是边的长度)。 给定一棵有n个节点的树和一个正整数k,找出距离恰好为k的不同节点对的数量。注意,节点对(v, u)和节点对(u, ...
分类:
其他好文 时间:
2020-07-18 11:28:18
阅读次数:
57
下面的三道题都属于入门难度。 CODE[VS] 树的中心 【解题思路】 第一题是树的重心板题,我们只需要更新每一个节点下面子树的大小(包含自己)和下面每一棵子树的最大值,然后我们更新最小的最大值就可以了(还要算上自己爸爸的那棵子树的大小就用总节点个数减该节点子树的大小即可!),最后返回最小的最大值。 ...
分类:
其他好文 时间:
2020-07-17 14:09:14
阅读次数:
70
题面 题意:自己看去 题解:先考虑一个暴力的树形dp。设$f_{i,j}$表示节点$i$权值为$j$的概率。那么对于所有有两个儿子的节点$i$,设它的两个儿子是$x,y$,那么对于所有在$x$中出现的权值$j$,有$f_{i,j}=f_{x,j}\times ((p_i \times \sum_f_ ...
分类:
其他好文 时间:
2020-07-16 00:22:06
阅读次数:
52
算法 一、树形DP 二、二分图最小点覆盖 思路 1 树形结构!!! 因为是一棵树,所以对于每个节点,我们都把它当成根节点处理\to→树形dp!!! 注意,某个士兵在一个结点上时,与该结点相连的所有边将都可以被了望到。 定义状态dp[u][0/1]表示u这个节点不放/放士兵 根据题意,如果当前节点不放 ...
分类:
其他好文 时间:
2020-07-15 23:42:56
阅读次数:
70
换根dp是用来解决一类不定根的树形dp,这种树形dp通常对于每个点做根时会有不同的答案。 换根dp通常使用二次扫描法来解决。步骤如下。 1、先推出最朴素的dp方程,即以每个点为根时的dp方程。 2、随便选一个点跑一遍普通的树形dp(一般都是自下而上的),一般都选1号节点(工具人石锤了)。 3、跑一遍 ...
分类:
其他好文 时间:
2020-06-26 18:30:49
阅读次数:
42
前提 如果题目求解目标是S规则,则求解流程可以定成以每一个节点为头节点的子树在S规则下的每一个答案,并且最终答案一定在其中。 套路: 以某个节点X为头节点的子树中,分析答案有哪些可能性,并且这种分析是以X的左子树、X的右子树和X整棵树的角度来考虑可能性的 根据第一步的可能性分析,列出所有需要的信息 ...
分类:
其他好文 时间:
2020-06-21 11:53:26
阅读次数:
79
「解题报告」[luoguP6594]换寝室 (二分答案 树形DP) 传送门 题面 题意 有 \(n\) 个寝室, 构成一个树结构. 每个寝室有一个点权 \(h_i\). 树上的边可以被禁用. 一个连通块的不满意值为这个连通块中寝室权值中最大值与最小值的差. 有 \(m\) 个老师, 每个老师有一条查 ...
分类:
其他好文 时间:
2020-06-16 23:43:32
阅读次数:
59