P1682 过家家

    • 35通过
    • 117提交
  • 题目提供者 yeszy 管理员
  • 评测方式 云端评测
  • 标签 并查集 高性能
  • 难度 提高+/省选-
  • 时空限制 1000ms / 128MB

题解

  • 提示:收藏到任务计划后,可在首页查看。
  • 最新讨论 显示

    推荐的相关题目 显示

    题目描述

    有2n个小学生来玩过家家游戏,其中有n个男生,编号为1到n,另外n个女生,编号也是1到n.每一个女生可以先选择一个和她不吵嘴的男生来玩,除此之外,如果编号为X的女生的朋友(也是女生,且编号为Y)不和编号为Z的男生吵嘴,那么X也可以选择Z。此外,朋友关系是可以传递的,比如a和b是朋友,b和c是朋友,那么我们可以认为a和c也是朋友。

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

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

    输入输出格式

    输入格式:

    第一行有4个整数n,m,k,f(3<=n<=250,0<m<n*n,0<=f<n).

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

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

    再接下来f行,每行包含2个数字c,d表示编号为c的女生和编号为d的女生是朋友。

    输出格式:

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

    输入输出样例

    输入样例#1: 复制
    4 5 1 2
    1 1
    2 3
    3 2
    4 2
    4 4
    1 4
    2 3
    
    输出样例#1: 复制
    3
    
    提示
    标程仅供做题后或实在无思路时参考。
    请自觉、自律地使用该功能并请对自己的学习负责。
    如果发现恶意抄袭标程,将按照I类违反进行处理。