【图论】【匹配】pku3715 Blue and Red

【题目】:Blue and Red

【类型】:图论

【难度】:中等

【来源】:pku3715

【关键字】:最小点覆盖集

【题目大意】:有两个阵营,给出N个士兵所属阵营和士兵之间的朋友关系。问最少除去多少个士兵,可以使得两方中的任意两个(每方选一个)都不是朋友。如果有多种答案,依次输出字典序小的答案。

 -----------------------------------------------------------------------------------------------------------------------------------------

【自己的分析】:先用匈牙利算出最小点覆盖数,接下来对所有最大匹配边扫描一次,选边的两端中较小的点。这个算法明显是错的。

【正确的算法分析】:其实有个算法可以求出最小点覆盖集,利用了konig定理,详见【其他】。算法看不懂,于是网上找了篇大牛的代码抄了一份。带入数据过了一遍,还是不懂其原理,自己数学修养太低了。

【数据结构】:

【其他优化】:

【时间复杂度】:

【学到了什么知识经验】:求最小点覆盖集

【同类型题目】:

  -----------------------------------------------------------------------------------------------------------------------------------------

【其他】:

http://acm.pku.edu.cn/JudgeOnline/problem?id=3715

http://www.matrix67.com/blog/archives/116

http://scrooke.spaces.live.com/blog/cns!10081586F20AA5EE!209.entry 

  -----------------------------------------------------------------------------------------------------------------------------------------

【代码】:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值