博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
订货【费用流】
阅读量:6036 次
发布时间:2019-06-20

本文共 1963 字,大约阅读时间需要 6 分钟。

题目大意:

有n个月,第i个月需要ui件货物,每个单位的货物再第i个月的价格是di,仓库容量为s,每放在仓库贮存1个月,每个单位的货物就要使用m元,若当月卖了出去则不用付.

解题思路:

赤裸裸的费用流

其实网络流最重要的就是建图
图建好了套模版
下面是建图方式:
1.建立源点与每个月连接,流量为无穷大,费用为di.
2.建立汇点与每个月连接,流量为ui,费用为0.
3.第i个月与第i+1个月连接,流量为s,费用为m.
原因:
1.可以买进无数件,费用当然就是价格
2.最大流,这ui肯定要流的,然后费用在源点与每个月之间就已经”买单”了.
3.仓库容量是s,费用是m,然后货物可以给下个月用

源程序:

#include
#include
#include
using namespace std;struct node{ int x,to,f,c,next;}e[205];int d[55],pre[55],last[55],cnt=-1,ans,n,m,S,s,t; bool v[55];void add(int u,int v,int c,int w){ e[++cnt].x=u;e[cnt].to=v;e[cnt].f=w;e[cnt].c=c;e[cnt].next=last[u];last[u]=cnt; e[++cnt].x=v;e[cnt].to=u;e[cnt].f=-w;e[cnt].c=0;e[cnt].next=last[v];last[v]=cnt;}bool spfa(){ queue
q; for (int i=s;i<=t;i++) d[i]=1e9; memset(pre,-1,sizeof(pre)); memset(v,0,sizeof(v)); d[s]=0;q.push(s);v[s]=1; while(q.size()) { int u=q.front();q.pop();v[u]=0; for (int i=last[u];~i;i=e[i].next) if (e[i].c&&d[e[i].to]>d[u]+e[i].f) { d[e[i].to]=d[u]+e[i].f; pre[e[i].to]=i; if (!v[e[i].to]) { v[e[i].to]=1; q.push(e[i].to); } } } return d[t]!=1e9;}void mcf(){ int i=t,minn=1e9; while (~pre[i]) { minn=min(e[pre[i]].c,minn); i=e[pre[i]].x; } ans+=d[t]*minn; i=t; while (~pre[i]) { e[pre[i]].c-=minn; e[pre[i]^1].c+=minn; i=e[pre[i]].x; } return;}int spf(){ while (spfa()) mcf(); return ans;}//上面的都是模版//我就不解释了int main(){ memset(last,-1,sizeof(last));//初始化 scanf("%d%d%d",&n,&m,&S); s=0;t=n+1;//建立源点汇点 for (int i=1;i<=n;i++) { int x; scanf("%d",&x); add(i,t,x,0);//连接(每个月与汇点) } for (int i=1;i<=n;i++) { int x; scanf("%d",&x); add(s,i,1e9,x);//连接(源点与每个月) } for (int i=1;i

转载于:https://www.cnblogs.com/Juruo-HJQ/p/9306897.html

你可能感兴趣的文章
centos7 安装wps 后 演示无法启动
查看>>
git简单命令
查看>>
LAMP编译部署
查看>>
XenDesktop7.6安装部署入门教程
查看>>
HashMap的工作原理及HashMap和Hashtable的区别
查看>>
GregorianCalendar日历程序
查看>>
Sublime 中运行 Shell 、Python、Lua、Groovy...等各种脚本
查看>>
【Java集合源码剖析】ArrayList源码剖析
查看>>
linux的目录结构
查看>>
这次逻辑通了,
查看>>
HTMLHelper
查看>>
快速构建Windows 8风格应用29-捕获图片与视频
查看>>
OC语言Block和协议
查看>>
使用xpath时出现noDefClass的错误(找不到某个类)
查看>>
.Net规则引擎介绍 - REngine
查看>>
CSS3 transforms 3D翻开
查看>>
利用传入的Type类型来调用范型方法的解决方案
查看>>
Top命令内存占用剖析
查看>>
转 网络IO模型:同步IO和异步IO,阻塞IO和非阻塞IO
查看>>
求带分数(蓝桥杯)
查看>>