網路流24題 11 分配問題

2021-08-19 11:22:50 字數 1152 閱讀 3191

非常經典的模型,就是乙個帶權的二分圖最大匹配,要求滿足最大匹配的同時權值最大,那麼我們顯然想到費用流,a類點向b類點連邊的時候費用設為貢獻就行了,最大貢獻的話spfa跑最長路,最小貢獻spfa跑最短路就行了

#include

#include

#include

#include

#include

#define ll long long

#define inf (2139062143)

#define n (100001)

using namespace std;

int n,s,t,x,k,ans,h,t;

int head[n],nxt[n],fare[n],fl[n],from[n],a[n],dis[n],q[n],aa[101][101];

bool vis[n];

template void read(t&t)

do while (isdigit(p));

if (!fl) t=-t;

}inline void add(int

x,int

y,int z,int data)

int spfa()}}

vis[u]=0;

}return dis[t];

}int spfaa()}}

vis[u]=0;

}return dis[t];

}int main()

for (int i=n+1;i<=n*2;i++)

for (int i=1;i<=n;i++)

}while (spfaa()!=dis[0])

ans+=dis[t];

}printf("%d\n",ans);

ans=0;

memset(head,-1,sizeof(head));

k=1;

for (int i=1;i<=n;i++)

for (int i=n+1;i<=n*2;i++)

for (int i=1;i<=n;i++)

}while (spfa()!=dis[0])

ans+=dis[t];

}printf("%d",ans);

return

0;}

網路流24題18 分配問題

有 n 件工作要分配給 n 個人做。第 i 個人做第 j 件工作產生的效益為ci j 試設計乙個將n 件工作分配給 n 個人做的分配方案,使產生的總效益最大。對於給定的 n 件工作和 n 個人,計算最優分配方案和最差分配方案。第 1 行有 1 個正整數 n,表示有 n 件工作要分配給 n 個人做。接...

分配問題 網路流24題

沙雕題,建圖很簡單。跑一遍最小費用,再把邊權取反重跑一遍最小費用。include define rep i,a,b for int i a i b i using namespace std const int n 250 int n,m,s,t,tot int head n struct node...

網路流24題 分配問題

時空限制1000ms 256mb 有 n件工作要分配給 n個人做。第 i個人做第 j件工作產生的效益為 c i j 試設計乙個將 n件工作分配給 n個人做的分配方案,使產生的總效益最大。輸入格式 檔案的第 1行有 1 個正整數 n 表示有 n 件工作要分配給 n 個人做。接下來的 n行中,每行有 n...