背包
czyhbo
这个作者很懒,什么都没留下…
展开
-
广东省赛补题_J
lijie 从哪到哪,并且需要最值,考虑bfs 应用bfs:扩展的时候权值如果都是一样的,那么一定可以用bfs,反之不可以用。 bfs重要特性就是,可以最优到最优,原理就是: next=最优+权值,而所有状态权值都是一样的,所以只要最优,那么就可push进队。 在本题中,权值是1,也就是每扩展一次,步数+1。 对哪个状态来说,只要扩展一次,步数都是+1,所以权值是相同的,为1。 ps:对于迷宫找出路问题,每扩展一步,步数+1,是一个道理。 但是bfs对于有权值的图,就不能用了,因为:next=最优+权值,各原创 2021-08-04 18:40:04 · 93 阅读 · 0 评论 -
十一届山东省赛补题_H(二维费用背包)
newcode 三维:要从头跑到尾,才能把整个dp更新完整,不然dp更新不完整 #include<bits/stdc++.h> #define ll long long using namespace std; int n,H,S; ll h[1010],s[1010],w[1010]; ll dp[1005][305][305]; int main() { ios_base::sync_with_stdio(0); cin.tie(0),cout.tie(0); cin原创 2021-08-01 10:40:14 · 79 阅读 · 0 评论 -
01背包
一、注释 背包怎么理解呢? 就是把背包的容量从0到V逐渐刷新,逐渐扩大容量,利用dp思想,先解决小容量,在小容量的基础上一步步解决大容量,直到我们需要的那个容量V 例如:让求容量V=5,就先求1 2 3 4 一步步扩展过来 V dp 1 2 3 4 5 二、解法 ①二维解法 const int maxn=1010; int dp[maxn][maxn]; int C[maxn],W[maxn]; int N; int V; int zero_one_pack(i原创 2021-03-16 17:34:02 · 94 阅读 · 0 评论