網路流24題 試題庫問題(最大流)

2022-03-20 08:16:36 字數 1073 閱讀 8285

cogs

簡單題這題應該很裸

因為每個試題限用一次

所以從源點向每個題目連邊,容量為1

然後每個型別的題目有限制

從型別向匯點連邊,容量為所需的題目數

然後就是題目向型別的匹配

和它對應的型別連邊,容量為1

然後直接跑最大流輸出就行了

#include#include#include#include#include#include#include#include#include#includeusing namespace std;

#define maxl 500000

#define max 5000

#define inf 1000000000

inline int read()

struct line

e[maxl];

int h[max],cnt;

int s,t,n,m,k;

inline void add(int u,int v,int w)

; h[u]=cnt++;

e[cnt]=(line);

h[v]=cnt++;

}int level[max];

bool bfs()

}return level[t];

}int dfs(int u,int flow)

}return ret;

}int dinic()

vectorans[max];

int main()

dinic();

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

for(int j=h[i];j!=-1;j=e[j].next)

if(e[j].v>n&&e[j].w==0)

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

for(int j=h[i];j!=-1;j=e[j].next)

if(e[j].v==t)

if(e[j].w!=0)

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

return 0;

}

網路流24題 試題庫問題 最大流

假設乙個試題庫中有n道試題。每道試題都標明了所屬類別。同一道題可能有多個類別屬性。現要從題庫中抽取m 道題組成試卷。並要求試卷包含指定型別的試題。試設計乙個滿足要求的組卷演算法。好像題目的描述有一點問題,但是看樣例就沒有問題了。首先我們要知道每乙個題目雖然有很多種型別,但是在試卷中只可以當做是乙個型...

網路流24題 試題庫問題

網路流24題大多需要spj,所以需要乙個有spj的oj,本系列 均在www.oj.swust.edu.cn測試通過 這道題的模型很顯然,源點向每個試卷連線一條容量為1的邊,每個試卷向對應的型別連線一條容量為一的邊,每個型別向匯點連線一條容量為需要數量的邊,跑一邊最大流即可。include inclu...

網路流24題 試題庫問題

傳送門 這個題好像比較水。每個種類向匯點連容量為所需求的數量的邊 然後每個試題向可以選的種類連容量為1的邊 再從源點向每個試題連容量為1的邊,然後dinic 過程中記錄一下轉移的目標節點,然後輸出路徑就好了 判無解不用我說了吧。include include include include incl...