先不考慮他讓參與人數最多,我們可以s連每個**量k費用0,每個人連能去的小組,流量1費用手續費,小組連t,拆邊建費用
考慮讓參與人數最多,每個人連t流量k-1費用為0,意義是在他參加了社團的情況下他可以把加入社團的機會讓給別的沒有社團的人
#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;
#define maxn 1010
#define maxm 1000010
#define ll long long
#define inf 1000000000
#define mod 1000000007
#define eps 1e-8
struct vec;
vec mp[maxm];
int tai[maxn],cnt=1;
int q[maxn],hd,tl;
bool iq[maxn];
int dis[maxn],rd[maxn];
int s,t;
int answ,ansf;
inline void be(int x,int y,int f,int v)
inline void bse(int x,int y,int f,int v)
bool spfa()
}} }
if(dis[t]>inf)
int flow=inf;
for(i=t;i!=s;i=mp[rd[i]^1].to)
ansf+=flow;
for(i=t;i!=s;i=mp[rd[i]^1].to)
return 1;
}int n,m,k;
int c[maxn],f[maxn];
int mx[maxn];
char s[maxn];
int main()
for(i=1;i<=m;i++)
for(i=1;i<=n;i++)
} }for(i=1;i<=m;i++)
} while(spfa())
printf("%d\n",answ);
return 0;}/*
3 3 1
1 2 3
3 2 1
111111
111*/
BZOJ3442 學習小組
背景 坑校準備鼓勵學生參加學習小組。描述 共有n個學生,m個學習小組,每個學生有一定的喜好,只願意參加其中的一些學習小組,但是校領導為學生考慮,規定乙個學生最多參加k個學習小組。財務處的大叔就沒那麼好了,他想盡量多收錢,因為每個學生參加學習小組都要交一定的手續費,不同的學習小組有不同的手續費。然而,...
bzoj3442 學習小組
題目大意 共有n個學生,m個學習小組,每個學生只願意參加其中的一些學習小組,但校領導規定乙個學生最多參加k個學習小組。每個學生參加學習小組都要交一定的手續費,不同的學習小組有不同的手續費。然而若有a個學生參加第i個學習小組,那麼就要給這個學習小組組織者獎勵ci a 2元。在參與學生 而不是每個學習小...
bzoj3442 學習小組
time limit 5 sec memory limit 128 mb submit 200 solved 87 submit status discuss 背景 坑校準備鼓舞學生參加學習小組。描寫敘述 共同擁有n個學生,m個學習小組,每乙個學生有一定的喜好,僅僅願意參加當中的一些學習小組,可是校...