01背包-记忆化搜索到成型的DP
2018-03-02 09:01
591 查看
记忆化搜索#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int n,W;
int dp[105][10005];
int w[105],v[105];
int rec(int i,int j){
if(dp[i][j] >= 0){
return dp[i][j];
}
int res;
if(i == n){
res = 0;
}else if(j < w[i]){
res = rec(i + 1,j);
}else{
res = max(rec(i + 1,j),rec(i + 1,j - w[i])+v[i]);
}
return dp[i][j] = res;
}
int main()
{
scanf("%d %d",&n,&W);
for(int i=0;i<n;i++){
scanf("%d %d",&w[i],&v[i]);
}
memset(dp,-1,sizeof(dp));
cout<<rec(0,W)<<endl;
return 0;
}二维DP#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int n,W;
int dp[105][10005];
int w[105],v[105];
int main()
{
scanf("%d %d",&n,&W);
for(int i=0;i<n;i++){
scanf("%d %d",&w[i],&v[i]);
}
memset(dp,0,sizeof(dp));
for(int i=n-1;i>=0;i--){
for(int j=0;j<=W;j++){
if(j < w[i]){
dp[i][j] = dp[i + 1][j];
}else{
dp[i][j] = max(dp[i+1][j],dp[i+1][j-w[i]]+v[i]);
}
}
}
cout<<dp[0][W]<<endl;
return 0;
}
using namespace std;
typedef long long ll;
int n,W;
int dp[105][10005];
int w[105],v[105];
int rec(int i,int j){
if(dp[i][j] >= 0){
return dp[i][j];
}
int res;
if(i == n){
res = 0;
}else if(j < w[i]){
res = rec(i + 1,j);
}else{
res = max(rec(i + 1,j),rec(i + 1,j - w[i])+v[i]);
}
return dp[i][j] = res;
}
int main()
{
scanf("%d %d",&n,&W);
for(int i=0;i<n;i++){
scanf("%d %d",&w[i],&v[i]);
}
memset(dp,-1,sizeof(dp));
cout<<rec(0,W)<<endl;
return 0;
}二维DP#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int n,W;
int dp[105][10005];
int w[105],v[105];
int main()
{
scanf("%d %d",&n,&W);
for(int i=0;i<n;i++){
scanf("%d %d",&w[i],&v[i]);
}
memset(dp,0,sizeof(dp));
for(int i=n-1;i>=0;i--){
for(int j=0;j<=W;j++){
if(j < w[i]){
dp[i][j] = dp[i + 1][j];
}else{
dp[i][j] = max(dp[i+1][j],dp[i+1][j-w[i]]+v[i]);
}
}
}
cout<<dp[0][W]<<endl;
return 0;
}
相关文章推荐
- hdu2067 简单dp或者记忆化搜索
- BZOJ.2246.[SDOI2011]迷宫探险(DP 记忆化搜索 概率)
- 【NoI 2002】【CodeVs 1746】【贪吃的九头龙】【树形dp】【记忆化搜索】【多叉树转化二叉树】
- POJ1088 滑雪 经典DP 记忆化搜索和递推
- 【重新入门数位Dp】Hdu 2089 不要62【记忆化搜索写法】数位Dp
- zoj 3640 Help Me Escape 期望DP 简单题 适合记忆化搜索
- poj 1651 dp 记忆化搜索
- 【BZOJ4428】[Nwerc2015]Debugging调试【DP】【记忆化搜索】【分块】
- 【DP】UVA 10651 Pebble Solitaire 记忆化搜索
- 【记忆化搜索区间dp】CodeForces 149D Coloring Brackets
- 【DP】UVA 10651 Pebble Solitaire 记忆化搜索
- POJ 1691 记忆化搜索解集合dp
- nyoj 17 单调递增最长子序列(dp---记忆化搜索||穷举|| nlogn算法)
- dp--记忆化搜索--cf917b MADMAX
- hdu 3555 数位dp水题 记忆化搜索做法
- POJ 1088 DP 记忆化搜索
- 关于dp和记忆化搜索
- POJ - 1088 滑雪(在这里dp和记忆化搜索有区别吗)
- HDU 3811 Permutation 记忆化搜索 状态压缩 DP
- HDU 5001 概率DP || 记忆化搜索