【BZOJ】【2424】【HAOI2010】订货
网络流/费用流
比较简单的题……我一开始想成像软件开发那题一样的做法了……就是每天拆点,S->i (INF,0) 、i+n->T (u[i],0) 然后处理购入 S->i+n (INF,v[i]) 以及放置仓库 i->i+1 (s,m)、i->i+n+1 (s,m)
然后顺利WA了……没想通为什么……
实际上不用拆的,直接建就可以S->i (INF,d[i])、 i->T (u[i],0)、 i->i+1 (s,m) 就连这三种边就行了= =
- /**************************************************************
- Problem: 2424
- User: Tunix
- Language: C++
- Result: Accepted
- Time:0 ms
- Memory:7136 kb
- ****************************************************************/
- //BZOJ 2424
- #include<cmath>
- #include<vector>
- #include<cstdio>
- #include<cstring>
- #include<cstdlib>
- #include<iostream>
- #include<algorithm>
- #define rep(i,n) for(int i=0;i<n;++i)
- #define F(i,j,n) for(int i=j;i<=n;++i)
- #define D(i,j,n) for(int i=j;i>=n;--i)
- #define pb push_back
- #define CC(a,b) memset(a,b,sizeof(a))
- using namespace std;
- int getint(){
- int v=,sign=; char ch=getchar();
- while(!isdigit(ch)) {if(ch=='-') sign=-; ch=getchar();}
- while(isdigit(ch)) {v=v*+ch-''; ch=getchar();}
- return v*sign;
- }
- const int N=,M=,INF=~0u>>;
- const double eps=1e-;
- /*******************template********************/
- int n,m,size,ans;
- struct edge{int from,to,v,c;};
- struct Net{
- edge E[M];
- int head[N],next[M],cnt;
- void ins(int x,int y,int z,int c){
- E[++cnt]=(edge){x,y,z,c};
- next[cnt]=head[x]; head[x]=cnt;
- }
- void add(int x,int y,int z,int c){
- ins(x,y,z,c); ins(y,x,,-c);
- }
- int from[N],Q[M],d[N],S,T;
- bool inq[N];
- bool spfa(){
- int l=,r=-;
- F(i,,T) d[i]=INF;
- d[S]=; Q[++r]=S; inq[S]=;
- while(l<=r){
- int x=Q[l++]; inq[x]=;
- for(int i=head[x];i;i=next[i])
- if(E[i].v && d[x]+E[i].c<d[E[i].to]){
- d[E[i].to]=d[x]+E[i].c;
- from[E[i].to]=i;
- if(!inq[E[i].to]){
- Q[++r]=E[i].to;
- inq[E[i].to]=;
- }
- }
- }
- return d[T]!=INF;
- }
- void mcf(){
- int x=INF;
- for(int i=from[T];i;i=from[E[i].from])
- x=min(x,E[i].v);
- for(int i=from[T];i;i=from[E[i].from]){
- E[i].v-=x;
- E[i^].v+=x;
- }
- ans+=x*d[T];
- }
- void init(){
- n=getint(); m=getint(); size=getint();
- cnt=; S=; T=n+;
- int x;
- F(i,,n){
- x=getint();
- add(i,T,x,);
- }
- F(i,,n){
- x=getint();
- add(S,i,INF,x);
- if (i<n) add(i,i+,size,m);
- }
- while(spfa()) mcf();
- printf("%d\n",ans);
- }
- }G1;
- int main(){
- #ifndef ONLINE_JUDGE
- freopen("input.txt","r",stdin);
- // freopen("output.txt","w",stdout);
- #endif
- G1.init();
- return ;
- }
2424: [HAOI2010]订货
Time Limit: 10 Sec Memory Limit: 128 MB
Submit: 572 Solved: 372
[Submit][Status][Discuss]
Description
公司估计市场在第i个月对某产品的需求量为Ui,已知在第i月该产品的订货单价为di,上个月月底未销完的单位产品要付存贮费用m,假定第一月月初的库存
量为零,第n月月底的库存量也为零,问如何安排这n个月订购计划,才能使成本最低?每月月初订购,订购后产品立即到货,进库并供应市场,于当月被售掉则不
必付存贮费。假设仓库容量为S。
Input
Output
只有1行,一个整数,代表最低成本
Sample Input
2 4 8
1 2 4
Sample Output
HINT
Source
http://www.lydsy.com/JudgeOnline/problem.php?id=2424
【BZOJ】【2424】【HAOI2010】订货的更多相关文章
- BZOJ 2424: [HAOI2010]订货
2424: [HAOI2010]订货 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 915 Solved: 639[Submit][Status][ ...
- BZOJ 2424: [HAOI2010]订货 费用流
2424: [HAOI2010]订货 Description 某公司估计市场在第i个月对某产品的需求量为Ui,已知在第i月该产品的订货单价为di,上个月月底未销完的单位产品要付存贮费用m,假定第一月月 ...
- BZOJ 2424: [HAOI2010]订货(最小费用最大流)
最小费用最大流..乱搞即可 ------------------------------------------------------------------------------ #includ ...
- 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 ...
- 2424: [HAOI2010]订货
2424: [HAOI2010]订货 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 922 Solved: 642[Submit][Status][ ...
- 2424. [HAOI2010]订货【费用流】
Description 某公司估计市场在第i个月对某产品的需求量为Ui,已知在第i月该产品的订货单价为di,上个月月底未销完的单位产品要付存贮费用m,假定第一月月初的库存量为零,第n月月底的库存量也为 ...
- 【BZOJ2424】[HAOI2010]订货(费用流)
[BZOJ2424][HAOI2010]订货(费用流) 题面 BZOJ 洛谷 题解 傻逼费用流吧... 一开始理解错意思了,仓库大小为\(m\)的含义是留到下个月最多为\(m\),而不是任意时刻的容量 ...
- 【BZOJ2424】[HAOI2010]订货 最小费用流
[BZOJ2424][HAOI2010]订货 Description 某公司估计市场在第i个月对某产品的需求量为Ui,已知在第i月该产品的订货单价为di,上个月月底未销完的单位产品要付存贮费用m,假定 ...
- bzoj2424 [HAOI2010]订货 dp+单调性
[HAOI2010]订货 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1311 Solved: 884[Submit][Status][Discu ...
随机推荐
- MongoDB 3 + Windows 7 X64安装及配置
注册windows服务,使MongoDB自动启动 1.使用系统管理员运行cmd C:\Users\admin> d: C:\Users\admin> cd "mongodb的安装 ...
- OC学习-1
编译和编写代码. 1. 创建代码文件夹 mkdir lession2 2. 新建类文件 touch lession2.m 3. 打开编写代码,(会用xcode打开) open lession2.m 4 ...
- How to display SSRS report based on customer/Vendor specific language [AX2012]
Common requirement is to show the reports in customer’s language. [example : Quotations, sales confi ...
- POJ-1579
#include <stdio.h> #include <stdlib.h> ][][]; int w(int a,int b,int c){ ||b<=||c<= ...
- instanceof、==号、Objetc类
1)instanceof: 判断某个对象是否为某个类的实例,注意多态的运用,一个父类引用指向子类的对象,根据继承,子类就是父类,所以子类也可以看做是父类的一个实例. 形式:引用 instanceof ...
- 仿SDWebImage
仿SDWebImage 目标:模拟 SDWebImage 的实现 说明:整体代码与之前博客上的演练代码的基本一致,只是编写顺序会有变化! 在模仿 SDWebImage 之前,首先需要补充一个知识点:N ...
- Android--调用系统的DownLoadManager去下载文件
代码里面有详细的注释: /** * 该方法是调用了系统的下载管理器 */ public void downLoadApk(Context context,String url){ /** * 在这里返 ...
- C#中的索引
索引代码示例: 索引的使用示例: 索引在经过编译器编译之后就相当于一个属性,进一步的说就是两个方法. 一个类允许 ...
- LD_PRELOAD
下面的helloworld会在屏幕上打印出什么内容? 1 2 3 4 5 6 #include <stdio.h> int main(int argc, char* argv[], cha ...
- NSAttributedString之设置字间距与行间距
// 调整行间距 NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithSt ...