
01背包
GoneWithTheWind_yin
山科大学生
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Robberies HDU - 2955
题目传送门题意:有一个小偷,和N家银行小偷如果被抓到的概率大于P以后就会被抓,每一家银行都有一个小偷能偷盗的金额和他被抓住的概率,问这个小偷在不被抓住的前提下能偷盗的最多的钱。思路:01背包的变形,还是比较简单的,我们可以把能偷盗的钱的金额当作背包的容量,而不被抓到的概率当中价值然后直接01背包就好了。#include <algorithm> #include <cmath> #include <c原创 2017-09-15 11:29:28 · 352 阅读 · 0 评论 -
挂饰 BZOJ - 4247
题目传送门思路:一个背包问题,这个背包问题和一般的背包问题不同的是这个背包的容量是可以变化的,所有我们定义DP[i][j]代表安装i挂钩以后还剩下j个挂钩,然后递推式就是dp[i][j] = max(dp[i - 1][j], dp[i - 1][max(j - p[i].a, 0) + 1] + p[i].b)#include <algorithm> #include <cmath> #inclu原创 2017-10-31 20:46:00 · 365 阅读 · 0 评论 -
粉刷匠 BZOJ - 1296
题目传送门思路:这个题先对每一块木板进行DP,dp[i][j]代表前i块木块用j次粉刷的符合要求的最大值,然后在对每一个木板进行一个背包DP就可以了。 PS:这个题目不需要用文件输入输出#include <algorithm> #include <cmath> #include <cstdio> #include <cstring> #include <iostream> #include <li原创 2017-11-01 10:24:21 · 655 阅读 · 0 评论