![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
DP
苏_幕遮
......
展开
-
状态压缩DP(持续更新~
poj 2441 题意:有N头牛,每头牛都有自己喜欢的barn 而且一个barn只能有一头牛,求给这些牛分配barn 共有多少种方法 #include<bits/stdc++.h> using namespace std; int n,m,x,t; int dp[2][1<<20],a[25][25]; int main(){ scanf("%d%d",&n,&m); memset(a,0,sizeof(a)); memset(dp,0原创 2020-10-23 17:19:33 · 144 阅读 · 0 评论 -
背包九讲
01背包:有N件物品和一个容量为V的背包。第i件物品的费用是w[i],价值是v[i],求将哪些物品装入背包可使价值总和最大 思路:每种物品仅有一件,可以选择放或不放。 用子问题定义状态:即f[i][j]表示前i件物品恰放入一个容量为j的背包可以获得的最大价值 F[i][j] = max(f[i - 1][j],f[i - 1][j - w[i]] + v[i]) “将前i件物品放入容量为j的...原创 2020-03-02 21:52:41 · 156 阅读 · 0 评论 -
hdu 6024 简单DP
题目大意:一条直线上,有n个教室,现在我要在这些教室里从左到右地建设一些作为糖果屋,每个教室都有自己的坐标xi和建造糖果屋的费用ci,如果在这里建造一个糖果屋,那么花费ci,如果不建造糖果屋,则花费是当前教室的坐标与左边最靠近当前教室的糖果屋坐标之差,问最小花费 dp的思路应该是很明显的 dp[i][1]代表第i个教室建立商店的最小花费,dp[i][0]代表第i个教室不建立商店的最小花费...原创 2019-05-23 21:28:30 · 110 阅读 · 0 评论 -
背包九讲
01背包: 有N件物品和一个容量为V的背包。第i件物品的费用是w[i],价值是v[i],求将哪些物品装入背包可使价值总和最大 思路:每种物品仅有一件,可以选择放或不放。 用子问题定义状态:即f[i][j]表示前i件物品恰放入一个容量为j的背包可以获得的最大价值 F[i][j] = max(f[i - 1][j],f[i - 1][j - w[i]] + v[i]) “将前i件物品放入...原创 2019-06-04 15:19:19 · 73 阅读 · 0 评论 -
DP(洛谷 + kuangbin专题)慢慢来持续更新ing
待到水到渠成那一天 P2871 01背包裸题 P263901背包裸题(代价和获益相同) P3009 求最大连续子段和 预处理前缀和,然后一次枚举右端点,左端点无需枚举只要在遍历的时候维护前面的前缀和最小值即可 #include<bits/stdc++.h> using namespace std; const int maxn = 1e6 + 10; int a[ma...原创 2019-08-27 10:41:08 · 148 阅读 · 0 评论