有p1+p2个人,你现在要把他们分成两波,一波p1个,一波p2个。你还知道这里面有若干对仇人和若干对朋友,朋友必须分在一波,仇人必须不能分在一波,而且这种关系是传递的,即朋友的朋友即是朋友,仇人的仇人即是仇人,仇人的朋友即是仇人,朋友的仇人即是仇人。。
现在给出n对关系和p1,p2,请输出一个可行方案,或者告诉我没有可行方案。
n≤100000,p1+p2≤3000
加权并查集,0代表和根节点同类,1代表和根异类,然后统计每个根节点0 1 各有多少然后跑分组背包即可
但特殊情况就是没有朋友和仇敌的情况,给他的包里放0 1各一个即可