正题

AC链接:
https://www.luogu.org/record/show?rid=7949532


大意

有n个月,每个月商品价格di,需求量Ui。有容量为S的仓库,一个商品汇存一个月要m。求最低成本


解题思路

首先是月份做为点,成本作为费用,需求作为容量。
刚开始想的是专门做一个点作为仓库,后来发现其实可以直接向下连边。
然后就是这样构图:

然后求费用流就好了


代码

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
struct line{int to,w,c,next;
}a[2001];
int tot,n,m,s,t,f[601],ls[601],tail,answer;
int state[601],x,y,w,c,ans,head,pre[601],S;
bool v[601];
void addl(int x,int y,int w,int c)
{a[++tot].to=y;a[tot].w=w;a[tot].c=c;a[tot].next=ls[x];ls[x]=tot;a[++tot].to=x;a[tot].w=0;a[tot].c=-c;a[tot].next=ls[y];ls[y]=tot;
}
bool spfa()
{memset(f,127/3,sizeof(f));memset(v,0,sizeof(v));head=0;tail=1;v[s]=true;state[1]=s;f[s]=0;while (head!=tail){head=head%500+1;int x=state[head];for (int q=ls[x];q;q=a[q].next){int y=a[q].to;if (a[q].w&&f[x]+a[q].c<f[y]){f[y]=f[x]+a[q].c;pre[y]=q;if (!v[y]){v[y]=true;tail=tail%500+1;state[tail]=y;}}}v[x]=false;}if (f[t]>=707406378) return 0;else return 1;
}
void upway()
{int k=2147483647,now=t;while (now!=s){k=min(k,a[pre[now]].w);now=a[pre[now]^1].to;}ans+=f[t]*k;now=t;answer+=k;while (now!=s){a[pre[now]].w-=k;a[pre[now]^1].w+=k;now=a[pre[now]^1].to;}
}
int main()
{tot=1;scanf("%d%d%d",&n,&m,&S);s=n+1;t=n+2;for (int i=1;i<=n;i++)scanf("%d",&x),addl(i,t,x,0);//完成订单for (int i=1;i<=n;i++)scanf("%d",&x),addl(s,i,1e9,x);//进货for (int i=1;i<n;i++)addl(i,i+1,S,m);//存while (spfa()){upway();}printf("%d",ans);
}

P2517-订货【网络流,费用流】相关推荐

  1. 图论-网络流⑦-费用流解题

    图论-网络流⑦-费用流解题 上一篇:图论-网络流⑥-费用流 下一篇:图论-网络流⑧-有上下界的网络流 参考文献: https://www.luogu.com.cn/blog/user9012/solu ...

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

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

  3. 修车——网络流——费用流

    这题很明显的是费用流了,关键是在于建图.其实,网络流的关键也是难点就在于建图. n个师傅,m个车-- 根据题意,需要把每个师傅拆成m个点,每辆车再向这些点连接,再来个超级源点S,超级汇点T即可. 代码 ...

  4. P4249 [WC2007]剪刀石头布(网络流/费用流)

    P4249 [WC2007]剪刀石头布 在一个竞赛图上一些边的方向已经确定,但是还有一些边的方向没有确定,求解最多有多少三元环. 首先看到三元环个数,按照套路我们利用度数计算,然后考虑每一条边,每一条 ...

  5. jzoj3302-[集训队互测2013]供电网络【上下界网络流,费用流,动态加边】

    正题 题目大意 若干个城市一些城市有一定的电,有些城市需要一定的电.对于第iii个城市购买一个电需要iniin_iini​,送出电需要outiout_iouti​.当然城市之间也可以相互传输电. 对于 ...

  6. 图论 —— 网络流 —— 费用流 —— 基于 Dijkstra 的费用流

    [概述] 在求解费用流时,大多数情况都是使用基于 SPFA 的 MCMF 算法,但有时某些毒瘤题会卡 SPFA,此时就要利用基于 Dijkstra 的费用流来求解. [算法原理] 基于 Dijkstr ...

  7. 图论 —— 网络流 —— 费用流 —— zkw 费用流

    [概述] 求解费用流的方法很多,目前最流行的是 MCMF 费用流,其实质是将 EK 算法中的 bfs 换为了 SPFA 来计算最小费用,但其存在的一个缺点是 EK 是单路增广的,这样速度会相应的慢一些 ...

  8. 网络流 费用流 模板 ISAP+SPFA+ZKW

    2020年4月20日重新发布.7年前的文章,几年前CSDN改版的时候变成了私密--重新发一下吧. 关于费用流ZKW算法的讲解:从入门到精通: 最小费用流的"zkw算法" 关于Din ...

  9. upc 6445: 棋盘V (网络流费用流解决匹配问题)

    6445: 棋盘V 时间限制: 1 Sec  内存限制: 128 MB 提交: 325  解决: 31 [提交] [状态] [讨论版] [命题人:admin] 题目描述 有一块棋盘,棋盘的边长为100 ...

最新文章

  1. 神经病啊!——微信同层播放器接(踩)入(坑)总结
  2. SecureCRT上传和下载文件(下载默认目录)
  3. ASP中时间格式转换
  4. C语言程序练习-L1-032 Left-pad (20分)
  5. java oracle.sql.struct转字符串_JAVA oracle.sql.OPAQUE转String
  6. ajaxFileUpload+struts2多文件上传(动态添加文件上传框)
  7. Exescope等打开DLL,导出函数名称混乱的问题
  8. vs2008 MFC工程建立
  9. 2020美赛F奖论文(三):足球团队指标和基于机器学习的球队表现预测
  10. 镜像翻转_《蒙娜丽莎》镜像翻转后,露出神秘的第二张脸,网友:笑容去哪了...
  11. 表格里加横线一分为二_excel表格分割线一分为二斜线
  12. 6 观察者模式off方法
  13. js截取url所带参数方法与url截取字段中包含中文会乱码的解决方案
  14. java开发专用英语,JAVA开发常用英语词汇
  15. 基于k-means聚类算法对NBA球员数据的一次聚类分析
  16. CTFSHOW 菜狗杯--WEB
  17. vscode 解决端口被占用问题
  18. web项目的getContextPath()
  19. java ssh 服务器文件传输_java使用SFTP上传文件到资源服务器
  20. Git的安装教程(完成clone一个项目到本地)

热门文章

  1. 数据结构——基于字符串模式匹配算法的病毒感染检测
  2. 线程与线程池(一条龙详解)
  3. 使用神经网络进行稀疏采样_使用python+opencv进行神经网络迁移
  4. Spring5 jar包下载
  5. [PAT乙级]1016 部分A+B
  6. LeetCode 82 删除排序链表中的重复元素||-中等
  7. LeetCode100 相同的树-简单
  8. UVA - 572 Oil Deposits-dfs找连通块
  9. 高等数学上-赵立军-北京大学出版社-题解-练习5.3
  10. 线段树维护区间最大值+第 45 届(ICPC)亚洲区域赛(昆明)L题Simone and Graph Coloring