#P3155. Hard Life
Hard Life
本题没有可用的提交语言。
题目描述
约翰是一家中型私营公司的首席执行官(CEO)。公司老板决定让儿子斯科特担任公司经理。约翰担心如果斯科特在新岗位上表现出色,老板最终会将CEO职位交给斯科特,因此他决定精心挑选斯科特管理的团队,让其工作尽可能困难。
约翰知道公司中哪些人两两在同一团队中合作低效。他定义了一个团队的难度系数:团队中合作低效的人数对数量除以团队总人数。难度系数越大,团队越难管理。约翰需要找出公司中难度系数最大的团队,并将其作为斯科特的团队。请你帮忙解决这个问题。
示例说明:
在附图的示例中,最难管理的团队由成员1、2、4、5组成。这4人中存在5对合作低效的组合,因此难度系数为5/4。如果将成员3加入团队,难度系数将降至6/5。
输入格式
- 第1行:两个整数 ( n ) 和 ( m )(( 1 \leq n \leq 100 ),( 0 \leq m \leq 1000 )),分别表示公司总人数和合作低效的人数对数量。
- 接下来 ( m ) 行:每行两个整数 ( a_i ) 和 ( b_i )(( 1 \leq a_i, b_i \leq n ),( a_i \neq b_i )),表示一对合作低效的人。输入中不会出现重复的数对,且数对顺序无关。
输出格式
- 第1行:一个整数 ( k )(( 1 \leq k \leq n )),表示最难管理团队的人数。
- 接下来 ( k ) 行:按升序输出团队成员的编号,每行一个。
- 若存在多个难度系数相同的团队,输出任意一个即可。
输入输出样例
输入数据 1 | 输入数据 2 |
---|---|
5 6 1 5 5 4 4 2 2 5 1 2 3 1 |
4 0 |
输出数据 1: 4 1 2 4 5 |
输出数据 2: 1 1 |
题目来源
Northeastern Europe 2006
关键分析
- 问题建模:将每个人视为图的节点,合作低效的数对视为无向边。团队对应图中的一个子图,难度系数为子图中边数 ( e ) 除以节点数 ( v ),即 ( e / v )。
- 目标:找出所有非空连通子图(或任意子图)中,( e / v ) 最大的子图。若存在多个子图具有相同的最大比值,选择其中任意一个。
- 特殊情况:当 ( m = 0 ) 时,所有团队的难度系数均为0,此时选择任意单节点团队即可(如输出1号成员)。