2018多省省隊聯測 劈配

2022-03-27 02:32:37 字數 1946 閱讀 2741

題目

第一問非常裸,就是乙個動態加邊的\(dinic\),我們從\(1\)到\(n\)考慮每乙個人的每乙個志願,每次把這個人這一志願的所有邊都連出來,跑最大流發現流量增加就說明這個志願匹配上了,退出做下乙個人;否則就做這個人的下乙個志願

在\(dinic\)的時候刪掉沒有用的邊會讓**快很多

第二問看起來非常二分,但是二分需要我們每次都重構出殘量網路或者是暴力存下所有殘量網路,這有點過於暴力了

於是我們考慮每當我們構造出前\(i\)個人的殘量網路的時候,我們就把之後的\(n-i\)個人的前\(s\)志願的邊加進來,跑\(dinic\)看看能否匹配,如果能匹配上我們給這個人記錄一下,同時退流

由於我們需要刪掉這個人的所有邊,我們沒有必要完整退流,只需要把匯點向這個人所連的導師指向匯點的邊給退流就好了

**

#include#include#include#include#include#include#define re register

#define ll long long

#define max(a,b) ((a)>(b)?(a):(b))

#define min(a,b) ((a)<(b)?(a):(b))

const int maxn=405;

const int inf=1e9;

inline int read()

std::vectorv[205][205];

std::queueq;

struct ee[maxn*maxn];

int h[maxn*maxn];

int te,cc,s,t,b[205],ans[205],a[205],vis[205],g[205],id[205];

int n,m,tot,r[maxn],num;

int head[maxn],d[maxn],cur[maxn];

inline void c(int x,int y,int f)

inline void add(int x,int y,int f)

inline int bfs()

return d[t];

}int dfs(int x,int now)

return flow;

}inline void rebuild()

inline void back(int pre)

}int main()

rebuild();

int now=0;

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

back(now);

}} for(re int i=1;i<=n;i++) if(!ans[i]) ans[i]=m+1;

for(re int i=1;i<=n;i++) a[i]=read();

for(re int i=1;i<=n;i++) printf("%d ",ans[i]);

putchar(10);

memset(head,0,sizeof(head));num=1;

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

for(re int j=1;j<=a[i];j++) vis[i]+=v[i][j].size();

if(vis[i]) vis[i]=0;

else vis[i]=1,g[i]=0;

} for(re int i=1;i<=n;i++) if(!vis[i]) g[i]=1;

rebuild();

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

now=num;

for(re int j=i+2;j<=n;j++)

}tot--;back(now);

}} for(re int i=1;i<=n;i++) printf("%d ",i-g[i]);

putchar(10);

} return 0;

}

bzoj5251 2018多省省隊聯測 劈配

直接網路流模擬即可ac。可持久化 暴力 90分,可持久化 二分 30分,暴力加邊 二分 100分。我也很無奈啊。ivan便漲紅了臉,額上的青筋條條綻出,爭辯道,memcpy也是可持久化 memcpy!oier的事,當然是可持久化!接連便是難懂的話,什麼 可持久化無旋treap套線段樹啟發式合併 什麼...

BZOJ 5251 2018多省省隊聯測 劈配

題目大意 題解 要求最優的錄取方案,網路流。問每個人的排名至少上公升多少才能滿足期望,這個有二分性。二分 網路流判定,沒有加優化所以在某些 上會t。include include include include define pi acos 1 using namespace std struct ...

bzoj5251 2018多省省隊聯測 劈配

一年一度的綜藝節目 中國新 又開始了。zayid從小就夢想成為一名程式設計師,他覺得這是乙個展示自己的舞台,於是他毫不猶豫地報名了。題目描述 輕車熟路的zayid順利地通過了海選,接下來的環節是導師盲選,這一階段的規則是這樣的 總共n名參賽選手 編號從1至n 每人寫出乙份 並介紹自己的夢想。接著由所...