2424. [HAOI2010]订货【费用流】
Description
Input
Output
只有1行,一个整数,代表最低成本
Sample Input
2 4 8
1 2 4
Sample Output
(好吧感觉和餐巾计划是一个题)
S---每一天 ,INF,当日单价
每一天---T,当日需求,0
每一天---下一天,S,m
啊做水题真爽
- #include<iostream>
- #include<cstdio>
- #include<cstdlib>
- #include<cstring>
- #include<queue>
- #define id(x,y) (x-1)*m+y
- #define N (10000+10)
- #define M (1000000+10)
- using namespace std;
- bool used[N];
- int n,m,S,s,e,u[],d[];
- int num_edge,head[N];
- int dis[N],INF,pre[N];
- queue<int>q;
- struct node
- {
- int to,next,Flow,Cost;
- } edge[M*];
- void add(int u,int v,int l,int c)
- {
- edge[++num_edge].to=v;
- edge[num_edge].next=head[u];
- edge[num_edge].Flow=l;
- edge[num_edge].Cost=c;
- head[u]=num_edge;
- }
- bool Spfa(int s,int e)
- {
- memset(dis,0x7f,sizeof(dis));
- memset(pre,-,sizeof(pre));
- dis[s]=;
- used[s]=true;
- q.push(s);
- while (!q.empty())
- {
- int x=q.front();
- q.pop();
- for (int i=head[x]; i!=; i=edge[i].next)
- if (dis[x]+edge[i].Cost<dis[edge[i].to] && edge[i].Flow>)
- {
- dis[edge[i].to]=dis[x]+edge[i].Cost;
- pre[edge[i].to]=i;
- if (!used[edge[i].to])
- {
- used[edge[i].to]=true;
- q.push(edge[i].to);
- }
- }
- used[x]=false;
- }
- return dis[e]!=INF;
- }
- int MCMF(int s,int e)
- {
- int Fee=;
- while (Spfa(s,e))
- {
- int d=INF;
- for (int i=e; i!=s; i=edge[((pre[i]-)^)+].to)
- d=min(d,edge[pre[i]].Flow);
- for (int i=e; i!=s; i=edge[((pre[i]-)^)+].to)
- {
- edge[pre[i]].Flow-=d;
- edge[((pre[i]-)^)+].Flow+=d;
- }
- Fee+=d*dis[e];
- }
- return Fee;
- }
- int main()
- {
- memset(&INF,0x7f,sizeof(INF));
- s=,e=;
- 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]);
- for (int i=; i<=n; ++i)
- {
- add(s,i,INF,d[i]);
- add(i,s,,-d[i]);
- add(i,e,u[i],);
- add(e,i,,);
- if (i==n) break;
- add(i,i+,S,m);
- add(i+,i,,-m);
- }
- printf("%d",MCMF(s,e));
- }
2424. [HAOI2010]订货【费用流】的更多相关文章
- BZOJ 2424: [HAOI2010]订货 费用流
2424: [HAOI2010]订货 Description 某公司估计市场在第i个月对某产品的需求量为Ui,已知在第i月该产品的订货单价为di,上个月月底未销完的单位产品要付存贮费用m,假定第一月月 ...
- 【bzoj2424】[HAOI2010]订货 费用流
原文地址:http://www.cnblogs.com/GXZlegend/p/6825296.html 题目描述 某公司估计市场在第i个月对某产品的需求量为Ui,已知在第i月该产品的订货单价为di, ...
- BZOJ2424 [HAOI2010]订货 - 费用流
题解 (非常裸的费用流 题意有一点表明不清: 该月卖出的商品可以不用算进仓库里面. 然后套上费用流模板 代码 #include<cstring> #include<queue> ...
- BZOJ 2424: [HAOI2010]订货(最小费用最大流)
最小费用最大流..乱搞即可 ------------------------------------------------------------------------------ #includ ...
- BZOJ 2424: [HAOI2010]订货
2424: [HAOI2010]订货 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 915 Solved: 639[Submit][Status][ ...
- 2424: [HAOI2010]订货
2424: [HAOI2010]订货 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 922 Solved: 642[Submit][Status][ ...
- BZOJ 2424: [HAOI2010]订货(费用流)
裸的费用流了= =从源点向每个点连费用为di,从汇点向每个点连流量为ui,每个点向下一个点连费用为m,流量为s的边就行了 CODE: #include<cstdio>#include< ...
- bzoj 2424: [HAOI2010]订货 (费用流)
直接费用流,天数就是点数 type arr=record toward,next,cap,cost:longint; end; const maxm=; maxn=; mm=<<; var ...
- BZOJ 2424 DP OR 费用流
思路: 1.DP f[i][j]表示第i个月的月底 还剩j的容量 转移还是相对比较好想的-- f[i][j+1]=min(f[i][j+1],f[i][j]+d[i]); if(j>=u[i+1 ...
随机推荐
- PHP学习1——快速入门
主要内容: 搭建PHP开发环境 第一个helloworld程序 PHP(Hypertext Preprocessor)PHP超文本预处理程序,是一种嵌入HTML的脚本语言,运行在服务器. 搭建PHP开 ...
- PL/SQL之包
1.包的定义 一个包由两个独立的部分组成--包头和包体.给部分被单独地存放在数据字典中. .1定义包头 语法: CREATE [OR REPLACE] PACKAGE [schema.] packag ...
- Centos 7 ip地址
vim /etc/sysconfig/network-scripts/ifcfg-ens33 HWADDR="00:15:5D:07:F1:02" TYPE="Ether ...
- SQL 事务与锁
了解事务和锁 事务:保持逻辑数据一致性与可恢复性,必不可少的利器. 锁:多用户访问同一数据库资源时,对访问的先后次序权限管理的一种机制,没有他事务或许将会一塌糊涂,不能保证数据的安全正确读写. 死锁: ...
- SpringBoot 初体验
1.Spring Boot 简介 简化Spring应用开发的一个框架 整个Spring技术栈的一个大整合 J2EE开发的一站式解决方案 2.微服务 2014, martin fowler 微服务:架构 ...
- js 判断浏览器是否64位
js判断是否64位 浏览器 navigator.userAgent.match(/x64/i);
- csharp: 图片字符间距
引用WINDOWS API: [DllImport("gdi32.dll", CharSet = CharSet.Auto)] public static extern int S ...
- openlayers研究(一) 初始化流程
下载2.13.1.解压缩.根据readme解释,openlayers.js是一个压缩库,.light是一个图像显示的简化库,mobile顾名思义应该是应对移动设备的库.build里面有py写的打包工具 ...
- GitHub初步探索-1-使用本地代码管理工具,简化上传的过程
使用GitHub对于我们写Java的同志们来说是一个非常好的代码存储的方式,但是因为是全英文的,操作起来有一点复杂,所以我不是经常使用 ,但是最近代码越敲越多,再加上老师要求,希望使用比较简单的方法来 ...
- IIS支持http协议的:put、delete等方法
HTTP常见方法:DELETE, GET, HEAD, OPTIONS, POST, PUT, PATCH 以下是从网上搜索的方法:其实经过测试,只配置最后那个web.config就可以实现这个功能: ...