教輔的組成 洛谷1231 網路流

2021-07-25 23:11:36 字數 1864 閱讀 7987

滾粗了的hansbug在收拾舊語文書,然而他發現了什麼奇妙的東西。

蒟蒻hansbug在一本語文書裡面發現了一本答案,然而他卻明明記得這書應該還包含乙份練習題。然而出現在他眼前的書多得數不勝數,其中有書,有答案,有練習冊。已知乙個完整的書冊均應該包含且僅包含一本書、一本練習冊和乙份答案,然而現在全都亂做了一團。許多書上面的字跡都已經模糊了,然而hansbug還是可以大致判斷這是一本書還是練習冊或答案,並且能夠大致知道一本書和答案以及一本書和練習冊的對應關係(即僅僅知道某書和某答案、某書和某練習冊有可能相對應,除此以外的均不可能對應)。既然如此,hansbug想知道在這樣的情況下,最多可能同時組合成多少個完整的書冊。

第一行包含三個正整數n1、n2、n3,分別表示書的個數、練習冊的個數和答案的個數。

第二行包含乙個正整數m1,表示書和練習冊可能的對應關係個數。

接下來m1行每行包含兩個正整數x、y,表示第x本書和第y本練習冊可能對應。(1<=x<=n1,1<=y<=n2)

第m1+3行包含乙個正整數m2,表述書和答案可能的對應關係個數。

接下來m2行每行包含兩個正整數x、y,表示第x本書和第y本答案可能對應。(1<=x<=n1,1<=y<=n3)

輸出包含乙個正整數,表示最多可能組成完整書冊的數目。

第一眼是想用匹配做的,然後我就卡住了

因為是以每本書延伸的關係圖,所以對於一本書來講它只能跟一本答案和一本練習冊配套,那麼就拆點

連邊st->練習冊->書的入點->出點->答案->ed

跑最大流,dinic不會tle

#include 

#include

#include

#define rep(i, a, b) for (int i = a; i <= b; i++)

#define fill(x, t) memset(x, t, sizeof(x))

#define min(x, y) x#define inf 0x3f3f3f3f

#define n 50001

#define e 160001

using

namespace

std;

struct edgee[e];

int dis[n], ls[n], edgecnt;

inline

int read()

ch = getchar();

}while (ch >= '0' && ch <= '9')

return x * v;

}int add(int x, int y, int w); ls[x] = edgecnt;

e[++edgecnt] = (edge); ls[y] = edgecnt;

return0;}

int bfs(int st, int ed)}}

}return0;}

int find(int now, int ed, int mn)

int ret = 0;

for (int i = ls[now]; i; i = e[i].next)}}

return ret;

}int dinic(int st, int ed)

return mxflow;

}int main(void)

int m2 = read();

rep(i, 1, m2)

rep(i, 1, n1)

int st = 0, ed = n2 + n1 * 2 + n3 + 1;

rep(i, 1, n2)

rep(i, 1, n3)

int ans = dinic(st, ed);

printf("%d\n", ans);

return

0;}

洛谷1231 教輔的組成(網路流)

洛谷 考慮一本書最多用一次,所以拆點。其他的答案 練習冊與書本的限制直接連1的邊就好了。最後跑出來的最大流就是答案。includeusing namespace std const int n 100010,inf 1e9 10 int front n cnt,s,t,n1,n2,n3 struct...

洛谷 P1231 教輔的組成

題目背景 滾粗了的hansbug在收拾舊語文書,然而他發現了什麼奇妙的東西。題目描述 蒟蒻hansbug在一本語文書裡面發現了一本答案,然而他卻明明記得這書應該還包含乙份練習題。然而出現在他眼前的書多得數不勝數,其中有書,有答案,有練習冊。已知乙個完整的書冊均應該包含且僅包含一本書 一本練習冊和乙份...

洛谷 P1231 教輔的組成

滾粗了的hansbug在收拾舊語文書,然而他發現了什麼奇妙的東西。蒟蒻hansbug在一本語文書裡面發現了一本答案,然而他卻明明記得這書應該還包含乙份練習題。然而出現在他眼前的書多得數不勝數,其中有書,有答案,有練習冊。已知乙個完整的書冊均應該包含且僅包含一本書 一本練習冊和乙份答案,然而現在全都亂...