DP之背包问题详解及案例
0-1背包
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2602
#include <stdio.h>
#include <string.h>
#include <algorithm>
#define MAX 10000 using namespace std; int val[MAX];
int w[MAX];
int dp[MAX]; int main()
{
int t;
scanf("%d",&t);
while(t--)
{
memset(dp,,sizeof(dp));
int n,W;
scanf("%d%d",&n,&W); for(int i=;i<n;i++)
scanf("%d",&val[i]); for(int i=;i<n;i++)
scanf("%d",&w[i]); for(int i=;i<n;i++)
{
for(int j=W;j>=w[i];j--)
if(dp[j-w[i]]+val[i]>dp[j])
dp[j]=dp[j-w[i]]+val[i];
} printf("%d\n",dp[W]);
}
return ;
}
完全背包:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1114
#include <stdio.h>
#include <string.h>
#include <algorithm>
#define MAX 10000
#define INF 0x3f3f3f3f using namespace std; int dp[MAX];
int val[MAX];
int w[MAX]; int main()
{
int t;
scanf("%d",&t);
while(t--)
{
memset(dp,INF,sizeof(dp));
int W,m,k;
scanf("%d%d",&m,&k);
W=k-m; int n;
scanf("%d",&n); for(int i=;i<n;i++)
scanf("%d%d",&val[i],&w[i]); dp[]=;
for(int i=;i<n;i++)
{
for(int j=w[i];j<=W;j++)
{
dp[j]=min(dp[j],dp[j-w[i]]+val[i]);
}
}
if(dp[W]==INF)
printf("This is impossible.\n");
else
printf("The minimum amount of money in the piggy-bank is %d.\n",dp[W]); }
return ;
}
多重背包:http://acm.hdu.edu.cn/showproblem.php?pid=2191
///
#include <stdio.h>
#include <string.h>
#include <algorithm>
#define MAX 1000 using namespace std; int dp[MAX];
int val[MAX];
int w[MAX];
int num[MAX]; int main()
{
int t;
scanf("%d",&t); while(t--)
{
memset(dp,,sizeof(dp)); int W,n;
scanf("%d%d",&W,&n); for(int i=;i<n;i++)
scanf("%d%d%d",&w[i],&val[i],&num[i]); for(int i=;i<n;i++)
{
for(int j=;j<num[i];j++)
{
for(int k=W;k>=w[i];k--)
dp[k]=max(dp[k],dp[k-w[i]]+val[i]);
}
} printf("%d\n",dp[W]); } return ;
}
DP之背包问题详解及案例的更多相关文章
- (转)dp动态规划分类详解
dp动态规划分类详解 转自:http://blog.csdn.NET/cc_again/article/details/25866971 动态规划一直是ACM竞赛中的重点,同时又是难点,因为该算法时间 ...
- Springboot 整合 Dubbo/ZooKeeper 详解 SOA 案例
摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! “看看星空,会觉得自己很渺小,可能我们在宇宙中从来就是一个偶然.所以,无论什么事情,仔细想一 ...
- SQL Server 表的管理_关于事务的处理的详解(案例代码)
SQL Server 表的管理_关于事务的处理的详解(案例代码) 一.SQL 事务 1.1SQL 事务 ●事务是在数据库上按照一定的逻辑顺序执行的任务序列,既可以由用户手动执行,也可以由某种数据库程序 ...
- SQL Server 表的管理_关于数据增删查改的操作的详解(案例代码)
SQL Server 表的管理_关于数据增删查改的操作的详解(案例代码)-DML 1.SQL INSERT INTO 语句(在表中插入) INSERT INTO 语句用于向表中插入新记录. SQL I ...
- SQL Server 表的管理_关于表的操作增删查改的操作的详解(案例代码)
SQL Server 表的管理_关于表的操作增删查改的操作的详解(案例代码) 概述: 表由行和列组成,每个表都必须有个表名. SQL CREATE TABLE 语法 CREATE TABLE tabl ...
- SQL Server 表的管理_关于事务操作的详解(案例代码)
SQL Server 表的管理_关于事务操作的详解(案例代码) 1.概念 事务(transaction): 是将多个修改语句组合在一起的方法,这个方法中的所有语句只有全部执行才能正确完成功能.即要么全 ...
- css过渡和2d详解及案例
css过渡和2d详解及案例(案例在下方,不要着急) 本文重点: 1.在2D变化使用过程中,有些需求需要两种或两种以上的变化同时使用, 值得注意的是尽量把位移变化放在最前面,把其他变化放在最后面,属性值 ...
- Zookeeper从入门到精通(开发详解,案例实战,Web界面监控)
ZooKeeper是Hadoop的开源子项目(Google Chubby的开源实现),它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护.命名服务.分布式同步.组服务等. Zookee ...
- Vue基础语法-数据绑定、事件处理和扩展组件等知识详解(案例分析,简单易懂,附源码)
前言: 本篇文章主要讲解了Vue实例对象的创建.常用内置指令的使用.自定义组件的创建.生命周期(钩子函数)等.以及个人的心得体会,汇集成本篇文章,作为自己对Vue基础知识入门级的总结与笔记. 其中介绍 ...
随机推荐
- Juniper SRX550防火墙web页面CPU达到100%的故障解决办法
Juniper SRX550防火墙web页面CPU达到100%的故障解决办法 利用telnet远程连接主机,对web页面注销重新登录即可,在配置中输入命令:run restart web-manage ...
- gitignore 忽略某文件夹下 非某后缀名的文件
忽略指定文件夹下的除某一文件之外的其他文件 parent_dir/!spec_file_name.html 忽略指定文件夹下的除某一类后缀名的文件 parent_dir/*[!*.html] 注意:若 ...
- 工作中常用的linux命令(持续更新)
一.top 实时动态地查看系统的整体运行情况1.在top命令后 > < 切换排序方式,根据cpu排名或者内存排名查看 2.top -p 进程pid 查看某一进程的整体运行情况 二.解压缩 ...
- 24-----BBS论坛
BBS论坛(二十四) 24.1.编辑板块 cms/js/banners.js $(function () { $('.edit-board-btn').click(function () { var ...
- Xshell上Linux上传下载文件
Xshell上的Linux想要进行文件的上传和下载可以使用以下命令: #rz //将本地的文件上传到Linux服务器,执行后会弹出选择文件的框 #sz filename //将 filename 这个 ...
- Java日志组件1---Jdk自带Logger(java.util.logging.Logger)
最近在看日志的一些东西,发现利用JDK自带的log也可以简单的实现日志的输出,将日志写入文件的过程记录如下: 1.新建LogUtil.Java( 里面写了几个静态方法,为log设置等级.添加log控制 ...
- 转 [Error]EOL while scanning string literal
https://blog.csdn.net/orangleliu/article/details/38943749 项目中有个定时任务,每天取到一些表数据传到一个外部接口,但是最近总是有异常,今天查了 ...
- 数据结构---Java---数组
**************************************************************前言************************************ ...
- VBS 操作Excel
VBS操作Excel 打开excel Dim objExcel,objWorkbook,objSheet Set objExcel=CreateObject("excel.applicati ...
- GRE新东方推荐学习方法(2010年左右)
单词:新东方新版红宝书(<NEW GRE 词汇精选>),不用<再要你命三个> 填空:新东方绿皮书(扎实的词汇量) 阅读:1 新东方绿皮书:2 <GRE阅读 39+3全攻略 ...