hyxzc_背包九讲课件
f[i][j]=f[i-1][j],
综上所述,f[i][j]=max(f[i-1][j],f[i-1][j-v[i]]+c[i]);
j=m;j>0;j--)//思考,为什么是倒叙循环?
(j>=v[i]) f[i][j]=max(f[i-1][j],f[i-1][j-v[i]]+c[i]);
else f[i][j]=f[i-1][j];
② 用一维优化。//观察动态规划方程,我们不难发现,f[i][j]只与上一层有关。
f[j]=max(f[j];f[j-v[i]]+c[i]);
ci==4
f[4]==4; f[8]==f[4]+4;
对于一个物品,不止选一次。
j=1;j<=m;j++)//思考,为什么是倒叙循环?
(j>=v[i]) f[i][j]=max(f[i-1][j],f[i-1][j-v[i]]+c[i]);
else f[i][j]=f[i-1][j];
i=1;i<=n;i++)
for (int j=1;j<=m;j++)
f[j]=max(f[j],f[j-v[i]]+c[i]);
(int i=1;i<=n;i++)
{
scanf("%d%d%d",&v,&c,&k);
for (int j=1;j<=k;j++)
s[++cnt].v=v,s[cnt].c=c;
}
这样对于每一个自然数i都可以被组合出来。然后再采用01背包。
while (n--)
//接下来输入n中这个物品
{
scanf("%d%d%d", &vi, &ci, &ki);
//输入每种物品的数目和价值
for (int k=1; k<=ki; k<<=1)
//<<右移 相当于乘二
{
value[cnt]=k*vi;//体积
size[cnt++]=k*ci;//价值
ki-=k;
}
if
(ki>0)
{
value[cnt]=ki*vi;
size[cnt++]=ki*ci;
}
}
//对于i的物品,体积为vi,价值为ci,属于第ki个分组,对于每一个分组而言,最多选一件。
j=M->0
for
i=1->s[k]//当前分组中的所有元素
f[j]=max(f[j],f[j-v[i]]+v[i]);
i=1->s[k] 之外,这样才能保证每一个分组最多只会选1个物品。
read(m,n);
j:=0;
i:=1 to n do
begin
read(x1,y1,z1);
if z1=0 then begin inc(j);
inc(s[j,0].x); s[j,s[j,0].x].x:=x1; s[j,s[j,0].x].y:=x1*y1;
s[j,0].y:=i; end
else
begin
for k:=1 to j do
if
z1=s[k,0].y then
begin
z:=s[k,0].x;
for l:=1 to z do
begin
inc(s[k,0].x);
s[k,s[k,0].x].x:=s[k,l].x+x1;
s[k,s[k,0].x].y:=s[k,l].y+x1*y1;
end;
end;
end;
end;
s[0,0].x:=j;
多米诺骨牌
多米诺骨牌有上下2个方块组成,每个方块中有1~6个点。现有排成行的
f[i][j]//表示前i个骨牌,点数相差j的翻动次数。
for j=-5000->5000
f[i][j]=min(f[i][j],min(f[i-1][j-a[i]],f[i-1][j+a[i]]+1));
hyxzc_背包九讲课件的更多相关文章
- 【DP_背包专题】 背包九讲
这段时间看了<背包九讲>,在HUST VJUDGE上找到了一个题单,挑选了其中16道题集中做了下,选题全部是HDU上的题,大多是简单题.目前做了点小总结,大概提了下每道题的思路重点部分,希 ...
- 背包九讲PDF
本资料仅限个人学习交流使用,不得用于商业用途. 背包九讲PDF:https://pan.baidu.com/s/17rTxMwCo9iSTOW77yucdXQ 提取码:xbqa
- My背包九讲——概述
文章目录 什么是背包问题 背包问题的分类 [第一讲 01背包问题](https://blog.csdn.net/qq_34261446/article/details/103705068) 第二讲 完 ...
- 背包九讲 && 题目
★.背包求方案数的时候,多重背包是不行的,因为产生重复的背包会有多种情况. ★.背包记录路径的时候,其实是不行的,因为更新了12的最优解,如果它依赖于6这个背包,然后你后面改变了6这个背包,就GG 1 ...
- dd大牛的《背包九讲》
P01: 01背包问题 题目 有N件物品和一个容量为V的背包.第i件物品的费用是c[i],价值是w[i].求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大. 基本思路 这是最 ...
- 直接抱过来dd大牛的《背包九讲》来做笔记
P01: 01背包问题 题目 有N件物品和一个容量为V的背包.第i件物品的费用是c[i],价值是w[i].求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大. 基本思路 这是最 ...
- 摘自 dd大牛的《背包九讲》
P01: 01背包问题 题目 有N件物品和一个容量为V的背包.第i件物品的费用是c[i],价值是w[i].求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大. 基本思路 这是最 ...
- 背包九讲(Orz)
P01: 01背包问题 题目 有\(N\)件物品和一个容量为\(V\)的背包.第\(i\)件物品的费用是\(c[i]\),价值是\(w[i]\).求解将哪些物品装入背包可使这些物品的费用总和不超过背包 ...
- dd 在度娘上看到的一个大牛的《背包九讲》 (:
P01: 01背包问题 题目 有N件物品和一个容量为V的背包.第i件物品的费用是c[i],价值是w[i].求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大. 基本思路 这是最 ...
随机推荐
- 简单配置oracle11g
一.配置 Systemd file(开机可以自动oracle,也可以查看启动状态) a.定义环境变量 [oracle@ol7 ~]$ cat /etc/sysconfig/DB11G.oracledb ...
- Kafka自我学习-报错篇
1. kafka启动出现:Unsupported major.minor version 52.0 错误, 具体的错误输出: Exception in thread "main" ...
- Drac6-Web界面无法访问
1. ssh idracip, and reset RAC -- will need around 10mins /admin1-> racadm racreset RAC reset oper ...
- 2、Distributed Optimization
一.目录: Distributed dynamic programming (as applied to path-planning problems). Distributed solutions ...
- Idea工具点滴积累
方法参数提示: keymap里面搜索 quick document,默认是F2
- 【BZOJ4031】【HEOI2015】小Z的房间 [Matrix-Tree][行列式]
小Z的房间 Time Limit: 10 Sec Memory Limit: 256 MB[Submit][Status][Discuss] Description 你突然有了一个大房子,房子里面有 ...
- NGINX: 限制连接的实践 (Defense DDOS)
参考: [ nginx防止DDOS攻击配置 ] 关于限制用户连接,Nginx 提供的模块: [ ngx_http_limit_req_module ] [ ngx_http_limit_conn_mo ...
- es查询格式
# host://{index}/{doc_type}/ ## /car_shop/sales/index/aaa/_search
- (转载)常用的Python库
http://forum.ubuntu.com.cn/viewtopic.php?f=63&t=249573&p=2640959 Tkinter ---- Python默认的图形界面接 ...
- C#字节数组的常用解码处理方法
在某些情况下,比如说串口通信或者读取二进制的文件,通常会得到一个byte数组形式的数据. 然而对于这个数据处理常常令人苦恼,因为通常通信情况下,并不是一个字节代表一个字符或者某个数据,而是数据夹杂在字 ...