[BZOJ2424][HAOI2010]订货(费用流)
2016-04-28 17:20
351 查看
题目描述
传送门题解
zyf2000:我赌五毛拆点。ATP:我怎么这么不想拆点。。。
zyf2000:mdzz
不用拆点。。。
建立st,对于每一个月:s->xi,inf,di;xi->t,ui,0;xi->xi+1,s,m
分别对应:每个月订购的货物,每个月应该的需求量,库存到下一个月的货物。
代码
#include<iostream> #include<cstring> #include<cstdio> #include<queue> using namespace std; const int max_n=100; const int max_m=1e4+5; const int max_e=max_m*2; const int INF=1e9; int n,m,u,d,s,N,mincost; int tot,point[max_n],next[max_e],v[max_e],remain[max_e],c[max_e]; int dis[max_n],last[max_n]; bool vis[max_n]; queue <int> q; inline void addedge(int x,int y,int cap,int z){ ++tot; next[tot]=point[x]; point[x]=tot; v[tot]=y; remain[tot]=cap; c[tot]=z; ++tot; next[tot]=point[y]; point[y]=tot; v[tot]=x; remain[tot]=0; c[tot]=-z; } inline int addflow(int s,int t){ int now=t,ans=INF; while (now!=s){ ans=min(ans,remain[last[now]]); now=v[last[now]^1]; } now=t; while (now!=s){ remain[last[now]]-=ans; remain[last[now]^1]+=ans; now=v[last[now]^1]; } return ans; } inline bool bfs(int s,int t){ memset(dis,0x7f,sizeof(dis)); dis[s]=0; memset(vis,0,sizeof(vis)); vis[s]=true; while (!q.empty()) q.pop(); q.push(s); while (!q.empty()){ int now=q.front(); q.pop(); vis[now]=false; for (int i=point[now];i!=-1;i=next[i]) if (dis[v[i]]>dis[now]+c[i]&&remain[i]){ dis[v[i]]=dis[now]+c[i]; last[v[i]]=i; if (!vis[v[i]]){ vis[v[i]]=true; q.push(v[i]); } } } if (dis[t]>INF) return false; int flow=addflow(s,t); mincost+=dis[t]*flow; return true; } inline void mincost_flow(int s,int t){ mincost=0; while (bfs(s,t)); } int main(){ tot=-1; memset(point,-1,sizeof(point)); memset(next,-1,sizeof(next)); scanf("%d%d%d",&n,&m,&s); N=n+2; for (int i=1;i<=n;++i) scanf("%d",&u),addedge(1+i,N,u,0);; for (int i=1;i<=n;++i) scanf("%d",&d),addedge(1,1+i,INF,d); for (int i=1;i<n;++i) addedge(i+1,i+2,s,m); mincost_flow(1,N); printf("%d\n",mincost); }
相关文章推荐
- win10输入法问题 中英文切换切不出来
- Leetcode no. 78
- iOS 项目知识积累
- 十进制转二
- css去掉iPhone、iPad默认按钮样式
- CircleProgressBar For Android(圆形进度条)
- 关于Button点击两次才响应事件相关问题
- Hello World!
- 套接字原理----socket
- iOS 证书更新,打包APP
- easyUI使用准备
- Javascript函数节流
- 16
- NSDataDetector,字符串中检测URL
- python urllib爬取网页编码问题
- python urllib爬取网页编码问题
- python urllib爬取网页编码问题
- python urllib爬取网页编码问题
- python urllib爬取网页编码问题
- python urllib爬取网页编码问题