P1231 教輔的組成 最大流

2022-05-01 13:57:09 字數 2248 閱讀 6796

滾粗了的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)

輸出格式:

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

輸入樣例#1: 複製

5 3 4

54 3

2 25 2

5 15 3

51 3

3 12 2

3 34 3

輸出樣例#1: 複製

2

眼前有 n1​本書,n2​本練習冊,n3​本答案。已知乙個完整的書冊均應該包含且僅包含一本書、一本練習冊、一本答案。現在 hansbug 只知道 m1​個可能的書和練習冊的對應關係,m2​個可能的書和答案的對應關係。hansbug 想知道在這樣的情況下,最多可能同時組合成多少個完整的書冊

練習冊放左邊 書放中間且拆點 答案放右邊就行了

#includeusing

namespace

std;

//input by bxd

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

#define repp(i,a,b) for(int i=(a);i>=(b);--i)

#define ri(n) scanf("%d",&(n))

#define rii(n,m) scanf("%d%d",&n,&m)

#define riii(n,m,k) scanf("%d%d%d",&n,&m,&k)

#define rs(s) scanf("%s",s);

#define ll long long

#define pb push_back

#define rep(i,n) for(int i=0;i

#define clr(a,v) memset(a,v,sizeof a)

/////////////////////////////////

/#define inf 0x3f3f3f3f

const

int n=4e5+44

;const

int m=4e6+54

;struct

edge e[m

<< 1

];int head[n], cnt = 1

;void add(int x, int y, int

z) ;

head[x] =cnt;

e[++cnt] = (edge);

head[y] =cnt;

}int

level[n];

bool bfs(int s, int

t) }

return

level[t];

}int dfs(int s, int t, int

flow)

}if (!ret) level[s] = 0

;

return

ret;

}int dinic(int s, int

t) int

n,m,s,t,a,b,c,q,n1,n2,n3;

intmain()

ri(q);

while(q--)

cout

<

return0;

}

view code

P1231 教輔的組成

題目 啊,又是煩人的拆點,其實網路瘤一堆題都是拆點,本題顯然要把書,練習冊 53 答案 學生的福音 分開,但是,書作為中轉的地方,是具有唯一性的,不能2本53都配同一本書,這時我們還需要用拆點思想保障書是唯一的。code include include include include include...

落谷 P1231 教輔的組成

恩呃呃呃 給你a,b,c三類的物品,給出a,b b,c的匹配關係,乙個a,b,c類物品在一起就算一套物品。求出最多可以有多少套物品。最大流的問題,建立乙個超級源點和超級匯點,然後a b b c連邊,從源點跑一次網路流然後就可以求出答案了 include include include include...

洛谷 P1231 教輔的組成

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