網路流24題 7 試題庫問題 題解

2022-06-29 16:09:10 字數 1170 閱讀 6131

題目鏈結(洛谷 p2763)

假設乙個試題庫中有\(n\)道試題。每道試題都標明了所屬類別。同一道題可能有多個類別屬性。現要從題庫中抽取\(m\)道題組成試卷。並要求試卷包含指定型別的試題。對於給定的組卷要求,計算滿足要求的組卷方案。

本題的思路比較顯然,從源點向所有種類連線一條容量為該種類題目數量的邊,從每乙個種類向該種類的每一道題連一條容量為\(1\)的邊,最後從每一道題向匯點連一條容量為\(1\)的邊,跑最大流即可。

/**

* luogu p2763

* dinic

**/#include #include #include #include using namespace std;

const int maxn = 2000;

const int maxm = 2e5 + 5;

const int s = 0;

const int t = maxn - 1;

const int inf = 0x3f3f3f3f;

struct edge e[maxm];

int head[maxn], numedge, n, m, sum, depth[maxn];

inline void _add(int from, int to, int val)

inline void addedge(int from, int to, int val)

inline bool bfs() }}

return depth[t];

}inline int dfs(int u, int flow) }}

if (!res) depth[u] = 0;

return res;

}int dinic()

int main()

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

addedge(i + n, t, 1);

}// for (int i = 0; i <= n + m; i++)

// // putchar('\n');

// }

int res = dinic();

if (res < sum)

else

}putchar('\n');}}

return 0;

}

網路流24題7 試題庫問題

假設乙個試題庫中有 n 道試題。每道試題都標明了所屬類別。同一道題可能有多個類別屬性。現要從題庫中抽取 m 道題組成試卷。並要求試卷包含指定型別的試題。試設計乙個滿足要求的組卷演算法。第1行有2個正整數n和k 2 k 20,k n 1000 k 表示題庫中試題型別總數,n 表示題庫中試題總數。第 2...

網路流24題 試題庫問題

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

網路流24題 試題庫問題

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