01背包-记忆化搜索到成型的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 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;
}
01背包-记忆化搜索到成型的DP的更多相关文章
- Bone Collector(01背包+记忆化搜索)
Bone Collector Time Limit : 2000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Tota ...
- hdu 2089 记忆化搜索写法(数位dp)
/* 记忆化搜索,第二维判断是否是6 */ #include<stdio.h> #include<string.h> #define N 9 int dp[N][2],digi ...
- 【BZOJ-4562】食物链 记忆化搜索(拓扑序 + DP)
4562: [Haoi2016]食物链 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 133 Solved: 112[Submit][Status] ...
- UVa 1252 - Twenty Questions(记忆化搜索,状态压缩dp)
本文出自 http://blog.csdn.net/shuangde800 题目链接:点击打开链接 题目大意 有n个长度为m的二进制串,每个都是不同的. 为了把所有字符串区分开,你可以询问,每次可 ...
- 专题1:记忆化搜索/DAG问题/基础动态规划
A OpenJ_Bailian 1088 滑雪 B OpenJ_Bailian 1579 Function Run Fun C HDU 1078 FatMouse and Chee ...
- UVA1629Cake slicing(记忆化搜索)
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=51190 紫书P305 题意分析:一个矩形蛋糕上有好多个樱桃,现在要 ...
- hdu 1078(dfs记忆化搜索)
题意:容易理解... 思路:我开始是用dfs剪枝做的,968ms险过的,后来在网上学习了记忆化搜索=深搜形式+dp思想,时间复杂度大大降低,我个人理解,就是从某一个点出发,前面的点是由后面的点求出的, ...
- UVa 1629 Cake slicing (记忆化搜索)
题意:一个矩形蛋糕上有好多个樱桃,现在要做的就是切割最少的距离,切出矩形形状的小蛋糕,让每个蛋糕上都有一个樱桃,问最少切割距离是多少. 析:很容易知道是记忆化搜索,我们用dp[u][d][l][r]来 ...
- HDU 1078 FatMouse and Cheese 记忆化搜索DP
直接爆搜肯定超时,除非你加了某种凡人不能想出来的剪枝...555 因为老鼠的路径上的点满足是递增的,所以满足一定的拓补关系,可以利用动态规划求解 但是复杂的拓补关系无法简单的用循环实现,所以直接采取记 ...
随机推荐
- 静态HTML服务器
主要代码 #pragma once#include "pre.h"#include <thread> NAMESPACE(DEF) class Socket {publ ...
- Oracle GoldenGate 一、介绍和安装
1 说明 1.1 下载和文档说明 下载地址:http://www.oracle.com/technetwork/middleware/goldengate/downloads/index.html 我 ...
- Mysql索引会失效的几种情况分析(转)
出处:http://www.jb51.net/article/50649.htm 索引并不是时时都会生效的,比如以下几种情况,将导致索引失效: 1.如果条件中有or,即使其中有条件带索引也不会使用(这 ...
- maven pom.xml几个特殊的插件
1. surefire插件 Maven Surefire 插件有一个 test 目标,该目标被绑定在了 test 阶段. test 目标执行项目中所有能在 src/test/java 找到的并且文件 ...
- cmake 语法
语法说明 CMakeLists.txt 文件遵循一种简单的语法包括 注释,命令和空格字符.注释使用#符号,从符号开始之后的一行都表示注释.命令包括命令名,左括号,分隔参数的空白字符和右括号.命令既可以 ...
- thinkphp 调用wsdl接口实例化SoapClient抛出异常
异常:Message:SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://*****?wsdl' : failed to load externa ...
- CI框架下的PHP增删改查总结
controllers下的 cquery.php文件 <?php class CQuery extends Controller { //构造函数 function CQuery() { par ...
- loadrunner - Run time Settings 的详细说明
本文主要讲解一下run-time settings(如图1所示)里各设置项的具体含义(注:标红色的选项卡是比较值得关注的,可重点看一下): 图1 1.General / Run Logic 选项卡 ...
- ZOJ3703 Happy Programming Contest 2017-04-06 23:33 61人阅读 评论(0) 收藏
Happy Programming Contest Time Limit: 2 Seconds Memory Limit: 65536 KB In Zhejiang University P ...
- centos mysql忘记密码找回(仅限mysql5.7)
1.停掉mysql 2.执行#mysqld_safe --user=mysql --skip-grant-tables --skip-networking & 3.#mysql 4.updat ...