当时一直在想前缀和。。。多亏张队提醒。。。


从1到n背次包,保存每一个状态下的价值,就是不要把第一维压掉;再从n到1背一次,同样记住每种状态;

然后询问时相当于是max(前缀+后缀),当然前缀后缀中间去掉了一个应去掉的商品。

#include<cstdio>
#include<iostream>
#define R register int
using namespace std;
inline int g() {
R ret=,fix=; register char ch; while(!isdigit(ch=getchar())) fix=ch=='-'?-:fix;
do ret=ret*+(ch^); while(isdigit(ch=getchar())); return ret*fix;
}
int n,q;
int a[],b[],c[],f[][],h[][];
signed main() {
n=g();
for(R i=;i<=n;++i) a[i]=g(),b[i]=g(),c[i]=g();
for(R i=;i<=n;++i) for(R j=;j>=;--j) {
f[i][j]=f[i-][j];
for(R k=;k<=c[i];++k) if(j>=k*a[i]) f[i][j]=max(f[i][j],f[i-][j-k*a[i]]+k*b[i]);
else break;
}
for(R i=n;i>=;--i) for(R j=;j>=;--j) {
h[i][j]=h[i+][j];
for(R k=;k<=c[i];++k) if(j>=k*a[i]) h[i][j]=max(h[i][j],h[i+][j-k*a[i]]+k*b[i]);
else break;
} q=g();
for(R i=;i<=q;++i) {
R k=g(),w=g(); R ans=;
for(R i=;i<=w;++i) ans=max(ans,f[k][w-i]+h[k+][i]);
printf("%d\n",ans);
}
}

2019.04.25

Luogu P4095 [HEOI2013]Eden 的新背包问题 思维/动规的更多相关文章

  1. luogu P4095 [HEOI2013]Eden 的新背包问题 多重背包 背包的合并

    LINK:Eden 的新背包问题 就是一个多重背包 每次去掉一个物品 询问钱数为w所能买到的最大值. 可以对于每次Q暴力dp 利用单调队列优化多重背包 这样复杂度是Qnm的. 发现过不了n==10的点 ...

  2. LUOGU P4095 [HEOI2013]Eden 的新背包问题

    题目描述 " 寄 没 有 地 址 的 信 ,这 样 的 情 绪 有 种 距 离 ,你 放 着 谁 的 歌 曲 ,是 怎 样 的 心 情 . 能 不 能 说 给 我 听 ." 失忆的 ...

  3. Luogu P4095 [HEOI2013]Eden的新背包问题

    题目 求出从前往后的背包\(f_{i,j}\)和从后往前的背包\(F_{i,j}\). 那么对于询问\((d,e)\),答案就是\(\max\limits_{i=0}^e f_{d-1,i}+F_{d ...

  4. P4095 [HEOI2013]Eden 的新背包问题

    P4095 [HEOI2013]Eden 的新背包问题 题解 既然假定第 i 个物品不可以选,那么我们就设置两个数组 dpl[][] 正序选前i个物品,dpr[][] 倒序选前i个物品 ,价格不超过 ...

  5. 题解——洛谷P4095 [HEOI2013]Eden 的新背包问题(背包)

    思路很妙的背包 用了一些前缀和的思想 去掉了一个物品,我们可以从前i-1个和后i+1个推出答案 奇妙的思路 #include <cstdio> #include <algorithm ...

  6. BZOJ 3163: [Heoi2013]Eden的新背包问题( 背包dp )

    从左到右, 从右到左分别dp一次, 然后就可以回答询问了. ---------------------------------------------------------- #include< ...

  7. BZOJ3163&Codevs1886: [Heoi2013]Eden的新背包问题[分治优化dp]

    3163: [Heoi2013]Eden的新背包问题 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 428  Solved: 277[Submit][ ...

  8. 洛谷P4095||bzoj3163 [HEOI2013]Eden 的新背包问题

    https://www.luogu.org/problemnew/show/P4095 不太会.. 网上有神奇的做法: 第一种其实是暴力(复杂度3e8...)然而可以A.考虑多重背包,发现没有办法快速 ...

  9. bzoj 3163: [Heoi2013]Eden的新背包问题

    Description "寄没有地址的信,这样的情绪有种距离,你放着谁的歌曲,是怎样的心心静,能不能说给我听."失忆的Eden总想努力地回忆起过去,然而总是只能清晰地记得那种思念的 ...

随机推荐

  1. Activity的显式跳转和隐式挑战

    安卓中Activity的跳转几乎是每一个APP都会用到的技术点.而且他的使用时十分简单的. 这里我们先说一下主要的技术要点: 1.在清单文件中注册新的Activity 2.通过意图跳转 这里我们看一下 ...

  2. js 中的apply

    之一------(函数的劫持与对象的复制)关于对象的继承,一般的做法是用复制法: Object.extend 见protpotype.js 的实现方法: Object.extend = functio ...

  3. 【总结整理】javascript基础入门学习(慕课网学习)

    https://www.imooc.com/learn/36 注意: javascript作为一种脚本语言可以放在html页面中任何位置,但是浏览器解释html时是按先后顺序的,所以前面的script ...

  4. MyBatis配置Setting详细说明

    该表格转载自http://blog.csdn.net/summer_yuxia/article/details/53169227 setting是指定MyBatis的一些全局配置属性,这是MyBati ...

  5. rest-framework组件 之 渲染器与版本

    浏览目录 渲染器 版本 渲染器 规定页面显示的效果(无用,了解即可). 局部渲染 只返回json数据. 效果: 看另一种情况: 既返回json数据,又嵌套在html中.注意:容易出bug. 效果如下: ...

  6. Bugly集成指南

    官网: https://bugly.qq.com/v2/,用QQ扫码登录即可 1.创建应用,获取APPID 2.自动集成 2.1 在Module的build.gradle文件中添加依赖和属性配置: d ...

  7. table 和 div 简单布局

    table 简单布局 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:// ...

  8. ubuntu重新安装 apache2

    $ sudo apt-get --purge remove apache2 $ sudo apt-get --purge remove apache2.2-common $ sudo apt-get ...

  9. 认识data-xxx 的属性

    认识data-xxx 的属性 如, 在bootstrap之data-toggle="table", 不加这个属性,就不能实现框架自带的js效果. 1.它属于 HTML5 的 dat ...

  10. win10下安装配置mysql-8.0.13--实战可用

    1.下载mysql-8.0.13安装包 1 https://dev.mysql.com/downloads/mysql/ 选择zip安装包下载就好. 2.解压到你要安装的目录 3.创建my.ini配置 ...