过家家

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目描述

2n2n 个小学生来玩过家家游戏,其中有 nn 个男生,编号为 11nn,另外 nn 个女生,编号也是 11nn。每一个女生可以选择一个和她不吵嘴的男生来玩,除此之外,如果编号为 XX 的女生的朋友(也是女生,且编号为 YY)不和编号为 ZZ 的男生吵嘴,那么 XX 也可以选择 ZZ。此外,朋友关系是可以传递的,比如 aabb 是朋友,bbcc 是朋友,那么我们可以认为 aacc 也是朋友。注意,一个男生可以被多个女生选择为玩伴。

当每一位女生都选择了玩伴,那么他们会开始新一轮游戏。在每一轮后,每个女生都会开始去找一个新的男生做玩伴(以前没选过)。而且每一个女生最多能强制 kk 个男生接受,无论他们以前是否吵嘴。

现在你的任务就是确定这 2n2n 个小学生最多能玩几轮游戏。

输入格式

第一行有四个整数 n,m,k,fn,m,k,f3n2503 \le n \le 2500<m<n20 < m < n^{2}0f<n0 \le f < n)。

nn 表示有 2n2n 个小学生,其中 nn 个男生 nn 个女生。

接下来 mm 行,每行包含两个数字 a,ba,b 表示编号为 aa 的女生和编号为 bb 的男生从没吵嘴过。

再接下来 ff 行,每行包含两个数字 c,dc,d 表示编号为 cc 的女生和编号为 dd 的女生是朋友。

输出格式

对于每组数据,输出一个整数,表示 2n2n 个小学生最多能玩几轮。

4 5 1 2
1 1
2 3
3 2
4 2
4 4
1 4
2 3

3

并查集&最小生成树

Not Claimed
Status
Done
Problem
26
Open Since
2025-8-10 13:30
Deadline
2025-8-31 23:59
Extension
24 hour(s)