P2517 [HAOI2010]订货

设$f[i][j]$表示第$i$个月,库存为$j$的最小代价

枚举上个月的库存$k$,那么$f[i][j]=f[i-1][k]+(j+U[i]-k)*D[i]+j*m,k<=min(j+U[i],S)$

复杂度$O(nS^2)$

把上面的方程拆项

$f[i][j]=(j+U[i])*D[i]+j*m+{f[i-1][k]-k*D[i]},k<=min(j+U[i],S)$

这个$k$可以直接跟着$j$维护,连单调队列都不用开

复杂度$O(nS)$

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int n,m,S,f[][],U[],D[],h[];
int main(){
scanf("%d%d%d",&n,&m,&S);
for(int i=;i<=n;++i) scanf("%d",&U[i]);
for(int i=;i<=n;++i) scanf("%d",&D[i]);
memset(f,,sizeof(f)); f[][]=;
for(int i=;i<=n;++i){
int v=2e9,k=;
for(int j=;j<=S;++j){
while(k<=min(j+U[i],S)) v=min(v,f[i-][k]-k*D[i]),++k;
f[i][j]=v+(j+U[i])*D[i]+j*m;
}
}printf("%d",f[n][]);
}

P2517 [HAOI2010]订货(dp)的更多相关文章

  1. bzoj2424 [HAOI2010]订货 dp+单调性

    [HAOI2010]订货 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1311  Solved: 884[Submit][Status][Discu ...

  2. 洛谷P2517 HAOI2010 订货 (费用流)

    标准的费用流问题,关键在于巧妙地建模 一共有n个月份,源点设为0,汇点设为n+1 1.源点向所有月份连边,容量为正无穷,费用为该月进货的费用 2.每个月向下一个月连边,容量为仓库容量,费用为存货费用 ...

  3. P2517 [HAOI2010]订货

    思路 费用流水题 对每月拆点,入点向出点连cap=ui的边,s向入点连cost=di的边,i的入点向i+1的入点连cap=S的边即可 代码 #include <cstdio> #inclu ...

  4. BZOJ 2424: [HAOI2010]订货

    2424: [HAOI2010]订货 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 915  Solved: 639[Submit][Status][ ...

  5. 2424: [HAOI2010]订货

    2424: [HAOI2010]订货 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 922  Solved: 642[Submit][Status][ ...

  6. BZOJ 2424: [HAOI2010]订货 费用流

    2424: [HAOI2010]订货 Description 某公司估计市场在第i个月对某产品的需求量为Ui,已知在第i月该产品的订货单价为di,上个月月底未销完的单位产品要付存贮费用m,假定第一月月 ...

  7. BZOJ 2424: [HAOI2010]订货(最小费用最大流)

    最小费用最大流..乱搞即可 ------------------------------------------------------------------------------ #includ ...

  8. 【BZOJ2424】[HAOI2010]订货(费用流)

    [BZOJ2424][HAOI2010]订货(费用流) 题面 BZOJ 洛谷 题解 傻逼费用流吧... 一开始理解错意思了,仓库大小为\(m\)的含义是留到下个月最多为\(m\),而不是任意时刻的容量 ...

  9. 【BZOJ2424】[HAOI2010]订货 最小费用流

    [BZOJ2424][HAOI2010]订货 Description 某公司估计市场在第i个月对某产品的需求量为Ui,已知在第i月该产品的订货单价为di,上个月月底未销完的单位产品要付存贮费用m,假定 ...

随机推荐

  1. java:集合输出之Iterator和ListIterator

    在调用Iterator集合输出时,如果想要删除某个元素,请直接使用Iterator来判断元素是否存在然后再删除(next()当前指针内容,remove()删除当前内容 );如果在将集合丢给Iterat ...

  2. Python---进阶---logging---logger

    一.####用logging的四大组件来实现日志的功能 - 打印出函数执行的时间,日志的等级,日志的消息 - 用装饰器 - 不同的日志,要记录不同等级的日志消息 ------------------- ...

  3. 使用mongodb

    1.安装 yarn add moogose 2.启动 在命令行 mongod --dbpath D:\data//这是最后出现 waiting for connections on port 2701 ...

  4. Mysql数据库表类型

    MySQL的数据表类型很多,其中比较重要的是MyISAM,InnoDB这两种. 这两种类型各有优缺点,需要根据实际情况选择适合的,MySQL支持对不同的表设置不同的类型.下面做个对比:   MyISA ...

  5. NOI 2727:仙岛求药 x

    总时间限制:  1000ms 内存限制:  65536kB 描述 少年李逍遥的婶婶病了,王小虎介绍他去一趟仙灵岛,向仙女姐姐要仙丹救婶婶.叛逆但孝顺的李逍遥闯进了仙灵岛,克服了千险万难来到岛的中心,发 ...

  6. 【BZOJ2460】元素(拟阵)

    题意:给定n个物品,每个物品有属性x和价值y,要求从中选出一些使得价值和最大并且其中没有属性xor和为0的非空子集 n<=1000,x<=1e18,y<=1e4 思路:没有xor和为 ...

  7. PG_CONFIG-NOTFOUND

  8. Bellman-ford算法与SPFA算法思想详解及判负权环(负权回路)

    我们先看一下负权环为什么这么特殊:在一个图中,只要一个多边结构不是负权环,那么重复经过此结构时就会导致代价不断增大.在多边结构中唯有负权环会导致重复经过时代价不断减小,故在一些最短路径算法中可能会凭借 ...

  9. Conturbatio

    Conturbatio Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total ...

  10. ionic使用自定义icon

    参考文档:https://www.jianshu.com/p/5346fee9fd80  angular+ionic 自定义图标 注意: 这里不用name 用class类名显示出来 最后出来图标是个小 ...