poj1417 True Liars

有p1+p2个人,你现在要把他们分成两波,一波p1个,一波p2个。你还知道这里面有若干对仇人和若干对朋友,朋友必须分在一波,仇人必须不能分在一波,而且这种关系是传递的,即朋友的朋友即是朋友,仇人的仇人即是仇人,仇人的朋友即是仇人,朋友的仇人即是仇人。。
现在给出n对关系和p1,p2,请输出一个可行方案,或者告诉我没有可行方案。
n≤100000,p1+p2≤3000

加权并查集,0代表和根节点同类,1代表和根异类,然后统计每个根节点0 1 各有多少然后跑分组背包即可
但特殊情况就是没有朋友和仇敌的情况,给他的包里放0 1各一个即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值