[haoi2010]订货 最小费用流
这道题oj上的标签是动态规划,但我想不出来动态规划怎么搞,空间不爆,时间也要爆的;
好的,不扯淡,此题正常做法是最小费用流;
这道题我写了两遍,为什么呢?原因是第一次写的时候,不会写费用流,又恰好没带书,所以搁置了;
第二次又写到这道题了,有点生气,一鼓作气学了费用流,紧跟着敲了这道题;
也算一道费用流模板吧;
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<string>
using namespace std;
const int maxn=;
const int inf=;
const int S=,T=+;
struct node{
int x,y,next,flow,v,re;
}e[maxn];
int linkk[maxn],len=,n,m,s,u[maxn],c[maxn];
void insert(int x,int y,int flow,int v){
e[++len].x=x;
e[len].y=y;
e[len].v=v;
e[len].flow=flow;
e[len].next=linkk[x];
e[len].re=len+;
linkk[x]=len;
e[++len].x=y;
e[len].y=x;
e[len].flow=;
e[len].v=v;
e[len].next=linkk[y];
e[len].re=len-;
linkk[y]=len;
}
void init(){
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",&c[i]);
for(int i=;i<=n;i++){
insert(S,i,inf,c[i]);insert(i,T,u[i],);
}
for(int i=;i<n;i++)insert(i,i+,s,m);
}
int vis[maxn],d[maxn],q[maxn*maxn],head=,tail=,pre[maxn],ans=,cap[maxn],t[maxn];
bool SPFA(){
for(int i=S;i<=T;i++)d[i]=inf<<;
memset(vis,,sizeof(vis));
head=,tail=;
q[++tail]=S;d[S]=;
while(++head<=tail){
int x=q[head];
vis[x]=;
for(int i=linkk[x];i;i=e[i].next){
if(e[i].flow&&d[e[i].y]>d[x]+e[i].v){
d[e[i].y]=d[x]+e[i].v;
cap[e[i].y]=e[i].flow;
t[e[i].y]=i;
pre[e[i].y]=x;
if(!vis[e[i].y]){
vis[e[i].y]=;
q[++tail]=e[i].y;
}
}
}
}
if(d[T]==inf<<)return ;
int flow=inf;
for(int i=T;i!=S;i=pre[i])flow=min(flow,cap[i]);
for(int i=T;i!=S;i=pre[i]){
e[t[i]].flow-=flow;
e[e[t[i]].re].flow+=flow;
ans+=e[t[i]].v*flow;
}
return ;
}
void work(){
ans=;
while(SPFA());
cout<<ans<<endl;
}
int main(){
init();
work();
}
[haoi2010]订货 最小费用流的更多相关文章
- 【BZOJ2424】[HAOI2010]订货 最小费用流
[BZOJ2424][HAOI2010]订货 Description 某公司估计市场在第i个月对某产品的需求量为Ui,已知在第i月该产品的订货单价为di,上个月月底未销完的单位产品要付存贮费用m,假定 ...
- 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]订货 费用流
2424: [HAOI2010]订货 Description 某公司估计市场在第i个月对某产品的需求量为Ui,已知在第i月该产品的订货单价为di,上个月月底未销完的单位产品要付存贮费用m,假定第一月月 ...
- BZOJ 2424: [HAOI2010]订货(最小费用最大流)
最小费用最大流..乱搞即可 ------------------------------------------------------------------------------ #includ ...
- 【BZOJ2424】[HAOI2010]订货(费用流)
[BZOJ2424][HAOI2010]订货(费用流) 题面 BZOJ 洛谷 题解 傻逼费用流吧... 一开始理解错意思了,仓库大小为\(m\)的含义是留到下个月最多为\(m\),而不是任意时刻的容量 ...
- bzoj2424 [HAOI2010]订货 dp+单调性
[HAOI2010]订货 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1311 Solved: 884[Submit][Status][Discu ...
- BZOJ_2424_[HAOI2010]订货_最小费用最大流
BZOJ_2424_[HAOI2010]订货_最小费用最大流 Description 某公司估计市场在第i个月对某产品的需求量为Ui,已知在第i月该产品的订货单价为di,上个月月底未销完的单位产品要付 ...
- P2517 [HAOI2010]订货(dp)
P2517 [HAOI2010]订货 设$f[i][j]$表示第$i$个月,库存为$j$的最小代价 枚举上个月的库存$k$,那么$f[i][j]=f[i-1][k]+(j+U[i]-k)*D[i]+j ...
随机推荐
- java高级工程师必备知识
成为Java高级工程师需要掌握哪些核心点? 每 逢长假都会有很多程序员跳槽,十一.过年是跳槽黄金时刻,尤其是过年.过年的时候年终奖到手,没有了多少牵挂,年终同学同事聚会比较多,沟通的就多,各种 工作机 ...
- HTTP首部及各状态码
通用首部:客户端和服务器都可以使用的通用首部,比如Status Code: 请求首部:请求首部是请求报文特有的,它们为服务器提供了一些额外信息,例如Accept: */* 用来告知服务器客户端会接受与 ...
- java枚举类型使用笔记
1.values()方法返回枚举所有实例的一个数组,调用这个数组的length方法,可以得到这个枚举对象中实例的个数 2.枚举类的每个实例,其实都是static的,可以通过static方法直接调用,而 ...
- 开源web终端ssh解决方案-gateone简介
好久都没来写博客,最近忙啥去了呢? 一是忙于saltstack的二次开发,二是云计算的学习研究中,所以就一直没写东西,今天给大家介绍个工具. 1. 首先来说一下为什么要 web ssh? 许多人不是说 ...
- MAC 重置MySQL root 密码
重置MySQL root 密码:当忘记密码,或者想要强行重置 MySQL 密码的时候,可以像下面这样: 1.停止 MySQL 服务 sudo /usr/local/mysql/support-file ...
- qtp 设置等待时间
1.file->settings->run .默认的时间是20 秒 2. browser("browser").Navigate http://www.baidu.co ...
- Python: 函数参数小结
参数的类型: 函数的参数有2种类型: 1. 函数定义时用于接收值的形式参数Parameters. 2. 函数调用时用于传递值的实际参数Arguments. 参数的传递: 传递方式有2种: 1. 值传递 ...
- mysql substring_index
select * from tablename where substring_index(field1,'_',-1)=‘abc' #表中field1的值结构为123_abc
- [转]理解与使用Javascript中的回调函数
在Javascript中,函数是第一类对象,这意味着函数可以像对象一样按照第一类管理被使用.既然函数实际上是对象:它们能被“存储”在变量中,能作为函数参数被传递,能在函数中被创建,能从函数中返回. 因 ...
- 创建并配置Filter
创建Filter需要两个步骤: 创建FIlter处理类. web.xml文件中配置Filter. 创建Filter类 创建Filter必须实现javax.servlet.Filter接口,在该接口中定 ...