題目鏈結(洛谷 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...