随笔分类 - 动态规划dp
摘要:题链 树形dp 令f[u]表示以u为根的子树需要的最小点数; 令g[u]表示以u为根的子树未被截断的点数; 对于一个点u,其孩子节点v; f[u] = $\sum_$f[v]; g[u] = $\sum_$g[v]; 若u是关键点: 则需要截断子树中未被截断的点: f[u] += g[u]; g[u
阅读全文
摘要:题链 做法1 写T了; 这是做法2; #include <bits/stdc++.h> using namespace std; #define ls rt<<1 #define rs rt<<1|1 #define LL long long #define PI acos(-1.0) #defin
阅读全文
摘要:# 题意 题链 题意:定义一个数字 num 在一个数组中的贡献为 最后一次出现的下标 减去 第一次出现的下标; 定义一个数组的价值 cost 为该数组中出现过的数字 num 的价值总和; 如数组 [2,2,3,2,3],cost = (4-1)+(5-3) = 5; 给定 n ,m,以及长度为 n
阅读全文
摘要:题链 dp[u][j]表示 包含u这个节点 不包含u节点父亲 大小为j的连通块方案数; 设v是u的一个子节点,并且递归求解出dp[v][j],递归终点就是dp[v][1] = 1,然后类似背包方法合并dp[u][],dp[v][]; 记cnt[i]表示大小为i的连通块数量; cnt[i]就是dp[
阅读全文
摘要:题链 dp[u][j]表示u这个节点取j个物品的最大值(包含u点); 设v是u的一个子节点,并且递归求解出dp[v][j],递归终点就是dp[v][1] = val[v](val[v] 表示点v的权值),然后合并u,v; 答案就是dp[0][m+1],从0号点选取m+1个物品的最大值(0号物品val
阅读全文

浙公网安备 33010602011771号