随笔分类 -  ACM —DP

摘要:# DP题目总结 **** ## 1、[LC1388. 3n 块披萨](https://leetcode.cn/problems/pizza-with-3n-slices/) ### 题意: - 3n的环形数组,每次取一个数后就删除前后相邻的两个数,问最后取得的总数最大是多少。 ### 分析: - 阅读全文
posted @ 2023-08-18 20:09 A_sc 阅读(32) 评论(0) 推荐(0)
摘要:DP进阶训练:区间dp + 数位dp + 状压dp 阅读全文
posted @ 2023-06-03 17:30 A_sc 阅读(120) 评论(0) 推荐(0)
摘要:E. Star MST Educational Codeforces Round 125 (Rated for Div. 2) E. Star MST 题目: 输入n, k。指n个点构成的完全无向图(完全图指任意两点间有一条边),加权边取值为1~k之间,如果与1点相连的边的权值和与MST的权值和相等 阅读全文
posted @ 2022-03-23 17:38 A_sc 阅读(165) 评论(0) 推荐(1)
摘要:161D. Distance in Tree (树形DP) Distance in Tree 题意:给一棵树,找两点距离为K的节点对个数 题解: \(dp[i][j]\) 表示 i 节点子树距离 i 为 k 的节点个数。DP转移为: \[ dp[u][0] = 1 \\ dp[u][j] = \su 阅读全文
posted @ 2020-09-06 21:34 A_sc 阅读(148) 评论(0) 推荐(0)
摘要:NC20811 蓝魔法师 (树形DP/树上01背包) 题目链接 学习博客 题目: 给出一棵树,求有多少种删边方案,使得删后的图每个连通块大小小于等于k,两种方案不同当且仅当存在一条边在一个方案中被删除,而在另一个方案中未被删除,答案对998244353取模 。 题解: 没想到是树形DP题,做题太少了 阅读全文
posted @ 2020-08-06 10:17 A_sc 阅读(194) 评论(0) 推荐(0)
摘要:HDU-6820 / 2020杭电多校(五) 1007 Tree 补题链接 参考博客 题意: 在一个无根树上选择一个的子图,要求子图全联通且度数大于k 的点最多只有1个。问该子图最大的权值。 题解: 首先想到枚举这个子图中度数大于k的点,然扩展一下。这个方法复杂度太高。 可以发现叶子节点很好处理,可 阅读全文
posted @ 2020-08-05 15:47 A_sc 阅读(225) 评论(1) 推荐(1)
摘要:"题目链接" "比赛地址" 题目: 将N个相同的硬币排成一排,所有的硬币正面朝上向下放到桌子上,尾巴向上,然后执行K次操作每次取一枚硬币,抛出得到正面或反面。最后正面朝上的硬币可以拿走。问可以赢得的最大预期金额是多少? 思路: 期望公式 $Ex = A p(A)$ A表示是一个事件,P(A)是A发生 阅读全文
posted @ 2020-05-23 23:04 A_sc 阅读(246) 评论(0) 推荐(0)
摘要:"题目链接" "参考博客" 题目: 有n个宝石和n个箱子,每个箱子只能放一个宝石且第i个宝石不能放在a[i]箱子中,问合适的放法数量,mod 998244353; 题解: 总数减去不合法排列的数量就是要的答案。 计算不合法排列数量时容易明白需要用到容斥的做法。得到公式: $res = n! \sum 阅读全文
posted @ 2020-05-23 09:49 A_sc 阅读(164) 评论(0) 推荐(0)
摘要:题目: "题目链接" 一个人工作时越工作越累,连续工作k天每天消耗体力为k,并且他最多消耗m的体力,当他休息一天后就可以恢复所有体力。在公司工作,给出一个字符01串,s[i]=0时表示第i天公司放假,他休息。s[i]=1时他可以自由选择休息还是工作。问这个人最多工作多少天? dp题。用dp[i][j 阅读全文
posted @ 2020-05-21 08:52 A_sc 阅读(121) 评论(0) 推荐(0)
摘要:题目: 一个游戏,每一局获胜概率为p%,获胜后获奖概率为q,q初值为2%,如果获胜没获奖q+2%,如果没有获胜q+1.5%。问输入p下获胜且获奖的期望。 我们能知道的初始状态是q=100%时的期望,此时就是一个几何分布,期望为1/p。dp[i]表示q=i时的期望。转移方程为$dp[i]=p (1 q 阅读全文
posted @ 2020-05-12 09:52 A_sc 阅读(202) 评论(0) 推荐(0)
摘要:题目: n n的表格中,先后选两条路径,第一条路径走完后会清空路径上的值,问两次路径上的值和得最大值。 $dp[i][j][k][l] = max(dp[i 1][j][k 1][l],dp[i 1][j][k][l 1],dp[i][j 1][k 1][l],dp[i][j 1][k][l 1]) 阅读全文
posted @ 2020-05-04 00:06 A_sc 阅读(120) 评论(0) 推荐(0)
摘要:从集合的角度思考DP问题 如上图展示了DP问题思考的一个简单步骤来自y总直播,“就像计算乘法一样,学会分析DP问题就像学会列竖式一样,让处理DP问题更简单”这就话让我瞬间意识到分析问题的重要性,处理DP问题不应该是想出转移过程,应该是一步步分析出来的。这篇博客记录以后做题过程中我对DP分析方法的理解 阅读全文
posted @ 2020-02-09 21:50 A_sc 阅读(324) 评论(0) 推荐(0)
摘要:被3整除的子序列 题目: 给你一个长度为50的数字串,问你有多少个子序列构成的数字可以被3整除 答案对1e9+7取模 题解: 将所有字符转成数字在对3取模,那么序列中只有0,1,2三个数字 如果是子序列,那么 $dp[i][0]$ 表示$1到i$ 中子序列和模3等于0的个数,$dp[i][1]$ 和 阅读全文
posted @ 2020-02-08 11:24 A_sc 阅读(640) 评论(0) 推荐(0)
摘要:背包九讲 1. 01背包 题目: 分析: 动态规划也就是一种用子问题去最优化原问题的策略。所以作为非常简单但重要的01背包问题,也是先考虑子问题。我们要求考虑 n 个物品装在容量为 V 的背包中的最大价值, 很容易想到其子问题就是 ① n-1 个物品装在未装第n个物品容量为 V 的背包中的最大价值。 阅读全文
posted @ 2019-09-14 00:28 A_sc 阅读(207) 评论(0) 推荐(0)