给定一棵N个节点的无根树,求至少要删去多少条边,使得分离后的若干个独立的子树之中的某一子树恰好有P个节点。 TreeDP。树形动态
原创
2023-09-15 09:42:35
25阅读
给定一棵N个节点的无根树,求至少要删去多少条边,使得分离后的若干个独立的子树之中的某一子树恰好有P个节点。TreeDP。树形动态规划。设状态f[i, j]表示以节点i为根的子树恰好有j个节点至少需要删除的边的数目。对于每个节点u。我们可以对它的儿子们(*儿子的状态必然已更新)进行一次类似背包的DP。(泛化物品的背包)r[i, j]表示由在前i个儿子中构成j个节点(*这里的j个节点不包括根节点)的以节点u为根的子树最少需要删除的边的数目。于是就有:r[i, j] = min{r[i - 1, j] + 1, r[i - 1, k] + f[g[u, i], j – k]},k /in [0..j
转载
2012-04-08 12:22:00
36阅读
2评论
树状dp,不简单。题意:给出一棵有根树,问最少切断几条边可以得到有i个结点的子树(连通分支)。采用左儿子右兄弟的存储方式,dp用两个数组:f[i][j]表示以i为根的子树,形成以本子树根结点为根(不包含本子树以外结点),共j个结点的子树所需的最小消耗。这里并没有计算切断i与其父亲连接的边的消耗。g[i][j]表示以i节点的父亲为根的,i结点以及i的父亲的子结点链中的i以后的结点做根的子树,构成共j个结点的以i的父亲为根(不包含本子树以外结点)的子树所需的最小消耗(i的兄弟们在形成子树时与i的父亲相连,即计算消耗时无需切断与i父亲的连接,但j个结点中不包含i的父亲)有状态转移方程:g[root]
转载
2011-06-08 16:12:00
38阅读
2评论
树上背包?
问最少断掉多少条边可以形成节点数为k的块
设f[i,j]表示以节点i为根,形成一个节点数为k的块要断多少条边
则有:f[x,j]:=min(f[x,j],f[x,j-k]+f[y,k]-2) y是x的孩子
为什么要减2,现在装入以y为节点的子树,x和y之间的边,这条边自然不用断了,但在计算f[y,k]和f[x,1]的时候,这条边被断了两次
1 const max=10006;
转载
2014-03-16 22:32:00
26阅读
2评论
//540K 32MS G++#include #include using namespace std;const int MAX = 155;int DPRemoveMin[MAX][MAX];int DPRemovNode { int par
原创
2023-05-23 16:10:57
52阅读
题意:
给定n个节点的无向树,删边得到一个K节点的子树。
问:最少需要删几条边。
第一行给定n,K(
第二行给出 u v 表示 u是v的父节点
思路:
树形背包
dp[i][j] 表示以i为根的子树中 删边得到j个节点的子树需要删边数量。
对于一个节点i,先计算出i所有子节点的答案。
初始化dp[i][1]为子节点个数,意思是删掉所有子节点。
则加入子树v后会少删一
原创
2021-08-13 13:58:23
70阅读
http://poj.org/problem?id=1947dp[i][j]代表以i为根的子树 保留j个节点最少需要删几条边详见注释#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int N=0x3f3f3f3f;const int maxn
原创
2022-06-16 06:21:27
58阅读
【题目链接】 点击打开链接 【算法】 f[i][j]表示以i为根的子树中,最少删多少条边可以组成j个节点的子树 树上背包,即可 【代码】
转载
2018-05-16 19:54:00
96阅读
2评论
Rebuilding RoadsTime Limit: 1000msMemory Limit: 30000KBThis problem will be judged onPKU. Original ID:194764-bit integer IO format:%lld Java class nam...
转载
2015-09-07 20:41:00
29阅读
#include#include#include#include#include#includeusing namespace std;#define inf 0x3f3f3f3fvector f[155];int d[155],dp[155][155]int i,
原创
2023-09-12 10:50:23
65阅读
题目传送门DescriptionThe cows have reconstructed Farmer John’s farm, with its N barns (1 <= N <= 150, number 1…N) after the terrible earth
原创
2022-07-08 10:18:02
37阅读
Description
The cows have reconstructed Farmer John’s farm, with its N barns (1 <= N <= 150, number 1..N) aft
原创
2022-08-10 10:25:44
34阅读
Rebuilding Roads Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 10653 Accepted: 4884 Description The cows have reconstructed Farmer John’s
转载
2017-08-18 12:57:00
72阅读
2评论
题意:给一棵树,在树中删除一些边,使得有一个连通块刚好为p
转载
2015-09-18 10:23:00
103阅读
2评论
Rebuilding Roads Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 10663 Accepted: 4891 Description The cows have reconstructed Farmer John's
原创
2021-07-21 16:03:10
84阅读
算法: dp[i][j]表示以i为根的子树要变成有j个节点的状态需要减掉的边数。 考虑状态转移的时候不考虑i的父亲节点,就当不存在。最后统计最少减去边数的 时候+1。 考虑一个节点时,有两种选择,要么剪掉跟子节点相连的边,则dp[i][j] = dp[i][j]+1; 要么不剪掉,则d[i][j]
转载
2017-06-07 14:54:00
57阅读
2评论
问题 C: 质因数的个数时间限制:1 Sec内存限制:32 MB题目描述求正整数N(N>1)的质因数的个数。相同的质因数需要重复
原创
2022-09-15 11:04:05
27阅读