题目描述

某公司估计市场在第i个月对某产品的需求量为Ui,已知在第i月该产品的订货单价为di,上个月月底未销完的单位产品要付存贮费用m,假定第一月月初的库存量为零,第n月月底的库存量也为零,问如何安排这n个月订购计划,才能使成本最低?每月月初订购,订购后产品立即到货,进库并供应市场,于当月被售掉则不必付存贮费。假设仓库容量为S。

输入输出格式

输入格式:
第1行:n, m, S (0<=n<=50, 0<=m<=10, 0<=S<=10000)

第2行:U1 , U2 , … , Ui , … , Un (0<=Ui<=10000)

第3行:d1 , d2 , …, di , … , dn (0<=di<=100)

输出格式:
只有1行,一个整数,代表最低成本

输入输出样例

输入样例#1:
3 1 1000
2 4 8
1 2 4

输出样例#1:
34

.
.
.
.
.
分析
这是一道费用流裸题

.
.
.
.
.
.
程序:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
using namespace std;int n,m,S,cnt,last[55],s,t,dis[55],vis[55],pre[55],ans=0;
struct edge
{int from,to,c,w,next;
}e[55*55*2]; queue<int> q;int read()
{int x=0,f=1;char ch=getchar();while (ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while (ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*f;
}void addedge(int u,int v,int c,int w)
{e[++cnt].from=u;e[cnt].to=v;e[cnt].c=c;e[cnt].w=w;e[cnt].next=last[u];last[u]=cnt;e[++cnt].from=v;e[cnt].to=u;e[cnt].c=0;e[cnt].w=-w;e[cnt].next=last[v];last[v]=cnt;}bool spfa()
{for (int i=s;i<=t;i++) dis[i]=2147483647;  dis[s]=0;vis[s]=1; q.push(s);while (!q.empty()){int u=q.front();q.pop();for (int i=last[u];i;i=e[i].next)if (e[i].c&&(dis[u]+e[i].w<dis[e[i].to])) {dis[e[i].to]=dis[u]+e[i].w; pre[e[i].to]=i; if (!vis[e[i].to]) {vis[e[i].to]=1;q.push(e[i].to); }}vis[u]=0;}if (dis[t]<2147483647) return true; else return false;
}void mcf()
{int mn=2147483647,x=t;while (pre[x]) {mn=min(mn,e[pre[x]].c); x=e[pre[x]].from; }ans+=dis[t]*mn;x=t; while (pre[x]) {e[pre[x]].c-=mn; e[pre[x]^1].c+=mn; x=e[pre[x]].from; }
}int main()
{n=read();m=read();S=read();s=0;t=n+1;cnt=1;for (int i=1;i<=n;i++){int x=read();addedge(i,t,x,0); }for (int i=1;i<=n;i++){int x=read();addedge(s,i,2147483647,x); }for (int i=1;i<n;i++) addedge(i,i+1,S,m); while (spfa()) mcf(); printf("%d",ans); return 0;
}

转载于:https://www.cnblogs.com/YYC-0304/p/11094942.html

[HAOI2010]订货相关推荐

  1. bzoj 2424: [HAOI2010]订货(费用流)

    2424: [HAOI2010]订货 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 784  Solved: 541 [Submit][Status ...

  2. [BZOJ 2424][HAOI2010]订货(费用流)

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

  3. [HAOI2010]订货 洛谷2517 BZOJ2424

    题目描述 某公司估计市场在第i个月对某产品的需求量为Ui,已知在第i月该产品的订货单价为di,上个月月底未销完的单位产品要付存贮费用m,假定第一月月初的库存量为零,第n月月底的库存量也为零,问如何安排 ...

  4. BZOJ2424: [HAOI2010]订货

    从0到i建容量为U[i],费用为零的边.(订货) 从i到n+1容量无限,费用为的的d[i]边.(售出) 从i到i+1容量为S,费用为m的边.(存贮) 然后跑费用流就好了. #include<cs ...

  5. bzoj 2424: [HAOI2010]订货

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

  6. P2517 [HAOI2010]订货 (最小费用最大流)

    传送门 裸题,当水博客用的) 由源点向每个月连容量为 i n f inf inf,费用为订货单价的边,表示每月的订购产品. 每个月向汇点连容量为当月需求量,费用为 0 0 0 的边,表示当月卖出. 同 ...

  7. bzoj2424 [HAOI2010]订货 费用流

    比较直观的费用流模型 码: #include<iostream> #include<cstdio> #include<queue> #include<cstr ...

  8. BZOJ2424 [HAOI2010]订货

    裸的费用流.... 建图方法:把每个月抽象成一个点 S向每个点连边,费用为当月购进价,容量无限大:每个点向T连边,费用为0,容量为当月卖出量 每个点向后一个月的点连边,费用为仓库储存费用m,容量为仓库 ...

  9. 洛谷 P2517 [HAOI2010]订货

    题面 题意 给出每一个月的商品需求量和每一个月的生产成本以及仓库容量和贮存费用(每月,与贮存货物的量无关),问最小成本. 分析 一开始没有想到用费用流去做,且难以建图,但将名词转化一下即可 将货物的量 ...

最新文章

  1. plsql存储过程修改后怎么保存_证件照上传不成功,教你修改分辨率、调整照片大小...
  2. ajax xmlhttp.responsetext,Ajax:xmlhttp.responseText响应显示完整的内部HTML而不是关闭所需文本...
  3. c++的文件输入/输出
  4. python怎么显示求余的除数_Python算术运算符及用法详解
  5. Python开课复习10
  6. Django讲课笔记09:使用QuerySet新增和更新数据
  7. Django 模板系统
  8. Android签名证书:jks和keystore
  9. 拼多多流量不精准是什么原因?怎么提高点击?
  10. 初识C语言———C语言基础入门
  11. Android开发Linux shell命令
  12. 2020中国华录杯·数据湖算法大赛—定向算法赛(吸烟打电话检测)baseline-tensorflow2.3-python3.6
  13. 上古卷轴5json文件修改_改进名称的新Tempering名称定制SSE
  14. 1 About This Guide
  15. 内部类以及匿名内部类
  16. 编译原理 实验2 语法分析器的构造
  17. Android实现图片浏览功能(图片器原理实现)
  18. 牛顿是人类历史上第二伟大的科学家吗?
  19. taro tabBar的设置,设置tabbar的文字,设置tabbar的图标
  20. netstat输出内容详解

热门文章

  1. 终章 | 机器学习笔试题精选
  2. 安顺计算机二级考试,安顺市2020年3月计算机二级报名时间|网上报名入口【12月18日9:00开通】...
  3. 赋值运算符函数严谨性的几点思考
  4. 如何理解遗传算法中的编码与解码?以二进制编码为例
  5. 二分搜索之x平方根(保留整数)
  6. 25匹马,找出最快的3匹,但是只有5个赛道,每次比赛只能得到5匹马的速度排序,那么最少需要多少次比赛
  7. 后台返回给前端json字段的大小写问题,Lombok的坑
  8. Hi3516A开发--i2c tools安装和使用
  9. hdu-2209 dfs
  10. c 获取数据库数据计算机,使用c从单板计算机写入mysql数据库使用c