![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法竞赛进阶
夏木_湫
帅
展开
-
线性DP_数字三角形
线性DP数字三角形代码详解原创 2020-11-18 21:03:58 · 80 阅读 · 0 评论 -
动态规划DP_多重背包
文章目录多重背包简介朴素想法思想和完全背包差不太多题目朴素代码代码优化优化代码代码分析 多重背包简介 在之前的完全背包的条件下,此时物品的个数已经不是无限个,而是有限个s[i] 朴素想法思想和完全背包差不太多 集合的划分 和完全背包的集合划分差不多,唯一不同的是,多了个限制条件,拿的物品的个数 <= s[i] 题目 朴素代码 #include <bits/stdc++.h> using namespace std; const int N = 110; int n, m; i原创 2020-11-14 17:44:48 · 149 阅读 · 0 评论 -
动态规划_完全背包_
这里写目录标题完全背包简介动态规划思想题目朴素代码优化 完全背包简介 在之前所写的01背包的简介基础上,把每件物品最多使用一次,改为每件物品可以使用无限次 动态规划思想 可以说和我之前写的01背包的思想差不多 不同点就在于集合划分,上次的01背包的集合f(i, j)状态划分只分为两种 一种是包含0个物品i 另一种是包含1个物品i 而完全背包的集合f(i, j)状态的划分为 包含0个物品i 包含1个物品i 包含2个物品i ... 包含k - 1个物品i 包含k 个物品i 当然要注意 k * v[i]原创 2020-11-14 13:04:08 · 87 阅读 · 0 评论 -
动态规划DP_01背包详解_介绍
这里写目录标题01背包简介DP 思想例题题解代码优化优化后的代码 01背包简介 有N个物体,第i件物体的体积为v[i], 价值为w[i] 有一个容量为V的背包 每件物品最多用一次, 求装的物品价值最大是多少 DP 思想 状态表示为 f(i, j) :该含义为取前i个物品, 但总体积 <= j 我们可以对该状态进行划分,划分为两种情况,一种是包含i, 另一种不包含i | | ----不包含i : 也就是从1 ~ i - 1 的物品中选: 该状态为 f(i - 1, j) f(i, j)原创 2020-11-13 21:34:17 · 252 阅读 · 0 评论 -
最短Hamilton路径_dp压缩_位运算
目录题目代码解释代码 题目 给定一张 n 个点的带权无向图,点从 0~n-1 标号,求起点 0 到终点 n-1 的最短Hamilton路径。 Hamilton路径的定义是从 0 到 n-1 不重不漏地经过每个点恰好一次。 输入格式 第一行输入整数n 。 接下来n 行每行n个整数,其中第i行第j个整数表示点i到j 的距离(记为a[i,j])。 对于任意的x,y,z ,数据保证 a[x,x]=0,a[x,y]=a[y,x] 并且 a[x,y]+a[y,z]>=a[x,z]。 输出格式 输出一个整数,表示最原创 2020-05-15 03:53:22 · 235 阅读 · 0 评论