会员
周边
新闻
博问
闪存
众包
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
传说中的水牛
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
3
4
5
下一页
2022年7月25日
树型背包
摘要: 简单来说就是背包问题与树形 DP 的结合 让我们来看个例题 https://www.luogu.com.cn/problem/P2014 这道题的思路如图: ac代码如下: #define NMAX 303 int dp[NMAX][NMAX];//1维->节点编号 2维选了多少门课 //dp[u]
阅读全文
posted @ 2022-07-25 19:22 传说中的水牛
阅读(33)
评论(0)
推荐(0)
2022年6月13日
最小生成树
摘要: 最小生成树的 Kruskal 算法,非常简单易懂 先按照边权从小到大排序。 依次将边的两个点加入到树中,加入前判断一下,这两个点是否已存在于树中(使用并查集 https://www.cnblogs.com/kingbuffalo/p/15380294.html) 并查集需要记录每个森林中有几个节点时
阅读全文
posted @ 2022-06-13 16:07 传说中的水牛
阅读(28)
评论(0)
推荐(0)
2022年6月9日
混合背包
摘要: 混合背包就是指,既有01背包,完全背包,多重背包。 解法很简单,就是对第二层for循环分情况讨论。 直接来题吧 此处多重背包使用二进制优化算法,当然也可以使用单调队列进行优化 详见 https://www.cnblogs.com/kingbuffalo/p/16285929.html 题:https
阅读全文
posted @ 2022-06-09 15:30 传说中的水牛
阅读(143)
评论(0)
推荐(0)
2022年6月1日
区间dp
摘要: 区间dp一般是 形如 dp[i][j] = oper(dp[i][k],dp[k+1][j] ) + cost[i..j]; 其中 oper可能是 求最大最小值,或乘法或加法,等等。 的dp 有一个比较简单题,可以对区间dp有个基本的了解https://www.acwing.com/problem/
阅读全文
posted @ 2022-06-01 22:48 传说中的水牛
阅读(39)
评论(0)
推荐(0)
2022年5月30日
单源最短路径
摘要: 单源最短路径算法,其实就是进行松驰的算法。 有Dijkstra/Bellman ford/SPFA 这三种算法 如图所示: 算法模板: 共用代码 #define NMAX 105 #define EMAX 10005 int head[NMAX]; int dist[NMAX]; int ver[E
阅读全文
posted @ 2022-05-30 10:47 传说中的水牛
阅读(126)
评论(0)
推荐(0)
2022年5月19日
dp_背包之多重背包
摘要: 要求: 看此文需要如下要求。 1,熟悉01背包及完全背包,对01背包/完全背包中的逆序和顺序选择的原因要了解。https://www.cnblogs.com/kingbuffalo/p/16241927.html 2,熟练使用单调队列求滑动窗口中的最大值 https://www.cnblogs.co
阅读全文
posted @ 2022-05-19 18:52 传说中的水牛
阅读(53)
评论(0)
推荐(0)
2022年5月11日
dp_01背包与完全背包
摘要: 问题 完全背包 有n个物品 已经第i个物品重量wi 价值vi 无数个 总背包容量 W 01背包 有n个物品 已经第i个物品重量wi 价值vi 只有1个 总背包容量 W 思路: 设dp[i][j] i为考虑前i个物品时 j为背包总量。 则有 无后效性:i为前i个物品考虑, j为总量,两者均从小到大增加
阅读全文
posted @ 2022-05-11 15:51 传说中的水牛
阅读(56)
评论(0)
推荐(0)
2022年5月6日
dp_基础_最长上升子序列
摘要: 也是非常经典的一道题 比较简单的做法是: 设dp[i] i: 以nums[i]作为一个子数组的,最长的上升子序列 则有 无后效性:i肯定不会影响i之前的。 子问题重叠:算i+1,i+2 .. n 时,都需要dp[i] 最优子结构:for( int j=0;j<i;++j ) if ( nums[j]
阅读全文
posted @ 2022-05-06 19:57 传说中的水牛
阅读(39)
评论(0)
推荐(0)
dp_基础_最长公共子序列
摘要: 非常经典的一道题 设dp[i][j]为最长公共子序列 i:s1以i为结尾的字符串 j:s2以i为结尾的字符串 则有 无后效性:i+1与j+1 不会影响之前的 子问题重叠:使用i-1, j-1 来代表已经对的结果 最优子结构:dp[i][j] = s[i-1] == s[j-1] ? dp[i-1][
阅读全文
posted @ 2022-05-06 13:26 传说中的水牛
阅读(29)
评论(0)
推荐(0)
dp_基础_数字三角形
摘要: 题 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 问:最大和是多少。 思路图解 设dp[i][j] i 为第i 行,j 为 第i行的第j个数字时。 则有 无后效性:向下选择的时候不会影响之前的选择 子问题重叠:使用dp[i-1] 来代表上一行已经选好的结果 最优子结构:dp[i][j]
阅读全文
posted @ 2022-05-06 12:31 传说中的水牛
阅读(20)
评论(0)
推荐(0)
上一页
1
2
3
4
5
下一页
公告