网络流/费用流


  比较简单的题……我一开始想成像软件开发那题一样的做法了……就是每天拆点,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) 就连这三种边就行了= =

  1. /**************************************************************
  2. Problem: 2424
  3. User: Tunix
  4. Language: C++
  5. Result: Accepted
  6. Time:0 ms
  7. Memory:7136 kb
  8. ****************************************************************/
  9.  
  10. //BZOJ 2424
  11. #include<cmath>
  12. #include<vector>
  13. #include<cstdio>
  14. #include<cstring>
  15. #include<cstdlib>
  16. #include<iostream>
  17. #include<algorithm>
  18. #define rep(i,n) for(int i=0;i<n;++i)
  19. #define F(i,j,n) for(int i=j;i<=n;++i)
  20. #define D(i,j,n) for(int i=j;i>=n;--i)
  21. #define pb push_back
  22. #define CC(a,b) memset(a,b,sizeof(a))
  23. using namespace std;
  24. int getint(){
  25. int v=,sign=; char ch=getchar();
  26. while(!isdigit(ch)) {if(ch=='-') sign=-; ch=getchar();}
  27. while(isdigit(ch)) {v=v*+ch-''; ch=getchar();}
  28. return v*sign;
  29. }
  30. const int N=,M=,INF=~0u>>;
  31. const double eps=1e-;
  32. /*******************template********************/
  33. int n,m,size,ans;
  34. struct edge{int from,to,v,c;};
  35. struct Net{
  36. edge E[M];
  37. int head[N],next[M],cnt;
  38. void ins(int x,int y,int z,int c){
  39. E[++cnt]=(edge){x,y,z,c};
  40. next[cnt]=head[x]; head[x]=cnt;
  41. }
  42. void add(int x,int y,int z,int c){
  43. ins(x,y,z,c); ins(y,x,,-c);
  44. }
  45. int from[N],Q[M],d[N],S,T;
  46. bool inq[N];
  47. bool spfa(){
  48. int l=,r=-;
  49. F(i,,T) d[i]=INF;
  50. d[S]=; Q[++r]=S; inq[S]=;
  51. while(l<=r){
  52. int x=Q[l++]; inq[x]=;
  53. for(int i=head[x];i;i=next[i])
  54. if(E[i].v && d[x]+E[i].c<d[E[i].to]){
  55. d[E[i].to]=d[x]+E[i].c;
  56. from[E[i].to]=i;
  57. if(!inq[E[i].to]){
  58. Q[++r]=E[i].to;
  59. inq[E[i].to]=;
  60. }
  61. }
  62. }
  63. return d[T]!=INF;
  64. }
  65. void mcf(){
  66. int x=INF;
  67. for(int i=from[T];i;i=from[E[i].from])
  68. x=min(x,E[i].v);
  69. for(int i=from[T];i;i=from[E[i].from]){
  70. E[i].v-=x;
  71. E[i^].v+=x;
  72. }
  73. ans+=x*d[T];
  74. }
  75. void init(){
  76. n=getint(); m=getint(); size=getint();
  77. cnt=; S=; T=n+;
  78. int x;
  79. F(i,,n){
  80. x=getint();
  81. add(i,T,x,);
  82. }
  83. F(i,,n){
  84. x=getint();
  85. add(S,i,INF,x);
  86. if (i<n) add(i,i+,size,m);
  87. }
  88. while(spfa()) mcf();
  89. printf("%d\n",ans);
  90. }
  91. }G1;
  92. int main(){
  93. #ifndef ONLINE_JUDGE
  94. freopen("input.txt","r",stdin);
  95. // freopen("output.txt","w",stdout);
  96. #endif
  97. G1.init();
  98. return ;
  99. }

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

第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)

Output

只有1行,一个整数,代表最低成本

Sample Input

3 1 1000
2 4 8
1 2 4

Sample Output

34

HINT

Source

[Submit][Status][Discuss]

http://www.lydsy.com/JudgeOnline/problem.php?id=2424

【BZOJ】【2424】【HAOI2010】订货的更多相关文章

  1. BZOJ 2424: [HAOI2010]订货

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

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

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

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

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

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

    裸的费用流了= =从源点向每个点连费用为di,从汇点向每个点连流量为ui,每个点向下一个点连费用为m,流量为s的边就行了 CODE: #include<cstdio>#include< ...

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

    直接费用流,天数就是点数 type arr=record toward,next,cap,cost:longint; end; const maxm=; maxn=; mm=<<; var ...

  6. 2424: [HAOI2010]订货

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

  7. 2424. [HAOI2010]订货【费用流】

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

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

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

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

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

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

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

随机推荐

  1. MongoDB 3 + Windows 7 X64安装及配置

    注册windows服务,使MongoDB自动启动 1.使用系统管理员运行cmd C:\Users\admin> d: C:\Users\admin> cd "mongodb的安装 ...

  2. OC学习-1

    编译和编写代码. 1. 创建代码文件夹 mkdir lession2 2. 新建类文件 touch lession2.m 3. 打开编写代码,(会用xcode打开) open lession2.m 4 ...

  3. 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 ...

  4. POJ-1579

    #include <stdio.h> #include <stdlib.h> ][][]; int w(int a,int b,int c){ ||b<=||c<= ...

  5. instanceof、==号、Objetc类

    1)instanceof: 判断某个对象是否为某个类的实例,注意多态的运用,一个父类引用指向子类的对象,根据继承,子类就是父类,所以子类也可以看做是父类的一个实例.  形式:引用 instanceof ...

  6. 仿SDWebImage

    仿SDWebImage 目标:模拟 SDWebImage 的实现 说明:整体代码与之前博客上的演练代码的基本一致,只是编写顺序会有变化! 在模仿 SDWebImage 之前,首先需要补充一个知识点:N ...

  7. Android--调用系统的DownLoadManager去下载文件

    代码里面有详细的注释: /** * 该方法是调用了系统的下载管理器 */ public void downLoadApk(Context context,String url){ /** * 在这里返 ...

  8. C#中的索引

    索引代码示例:                 索引的使用示例:                       索引在经过编译器编译之后就相当于一个属性,进一步的说就是两个方法.       一个类允许 ...

  9. LD_PRELOAD

    下面的helloworld会在屏幕上打印出什么内容? 1 2 3 4 5 6 #include <stdio.h> int main(int argc, char* argv[], cha ...

  10. NSAttributedString之设置字间距与行间距

    // 调整行间距 NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithSt ...