博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2018.10.13 bzoj1070: [SCOI2007]修车(费用流)
阅读量:4563 次
发布时间:2019-06-08

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

费用流经典题目。


自我感觉跟很像。

利用费用提前计算的思想来建图就行了。
代码:

#include
#define N 1005#define M 100005using namespace std;inline int read(){
int ans=0; char ch=getchar(); while(!isdigit(ch))ch=getchar(); while(isdigit(ch))ans=(ans<<3)+(ans<<1)+(ch^48),ch=getchar(); return ans;}int n,m;struct edge{
int v,w,c,next;};struct MCMF{
edge e[M<<1]; int first[N],cnt,d[N],flow[N],pred[N],pos[N],q[N],hd,tl,s,t; bool in[N]; inline void init(){
s=0,t=n*m+n+1,memset(first,-1,sizeof(first)),cnt=-1;} inline void addedge(int u,int v,int c,int w){
e[++cnt].v=v,e[cnt].w=w,e[cnt].c=c,e[cnt].next=first[u],first[u]=cnt;} inline void add(int u,int v,int c,int w){
addedge(u,v,c,w),addedge(v,u,0,-w);} inline bool spfa(){
queue
q; for(int i=1;i<=t;++i)d[i]=0x3f3f3f3f; memset(in,false,sizeof(in)),d[s]=0,in[s]=1,pred[t]=-1,flow[s]=0x3f3f3f3f,q.push(s); while(!q.empty()){
int x=q.front(); q.pop(),in[x]=0; for(int i=first[x];~i;i=e[i].next){
int v=e[i].v; if(!e[i].c||d[v]<=d[x]+e[i].w)continue; d[v]=d[x]+e[i].w,pred[v]=x,pos[v]=i,flow[v]=min(flow[x],e[i].c); if(!in[v])in[v]=1,q.push(v); } } return d[t]!=0x3f3f3f3f; } inline void solve(){
int ans=0; for(int w=t;spfa();w=t){
ans+=d[t]; while(w!=s)e[pos[w]].c-=flow[t],e[pos[w]^1].c+=flow[t],w=pred[w]; } printf("%.2lf",(double)((double)ans)/((double)n)); }}mcmf;int main(){
m=read(),n=read(),mcmf.init(); for(int i=1;i<=n;++i)mcmf.add(mcmf.s,i+n*m,1,0); for(int i=1;i<=n*m;++i)mcmf.add(i,mcmf.t,1,0); for(int i=1,v;i<=n;++i){
for(int j=1;j<=m;++j){
v=read(); for(int k=1;k<=n;++k)mcmf.add(i+n*m,(j-1)*n+k,1,v*k); } } mcmf.solve(); return 0;}

转载于:https://www.cnblogs.com/ldxcaicai/p/10084900.html

你可能感兴趣的文章
刮奖效果
查看>>
[runtime] iOS-Runtime-Headers
查看>>
读文章有感
查看>>
C#操作EXCEL类
查看>>
债券市场在中小微企业金融服务中的作用及发展方向
查看>>
simulink生成hdl的几个理解
查看>>
python2计算cisco无线AP需要dhcp的option43
查看>>
Nginx+Tomcat实现https安全链接
查看>>
BZOJ 1093 强连通缩点+DAG拓扑DP
查看>>
设计模式 || 观察者模式
查看>>
H5视频播放器属性与API控件,以及对程序的解释
查看>>
010 异步处理Rest服务
查看>>
json.dumps python错误:'utf8' codec can't decode byte 0xe1 in position 5 解决方案
查看>>
P2505 [HAOI2012]道路
查看>>
wxs旅游增强
查看>>
HDOJ 1091
查看>>
STL排序算法
查看>>
增长率超 100%!东软数据可视化到底什么样?
查看>>
JSP表单提交中文乱码
查看>>
GoF23种设计模式之行为型模式之责任链模式
查看>>