随笔分类 -  图论 匈牙利算法

摘要:先做一遍匈牙利算法。对于已经匹配的边,如果删去之后还能最大匹配数增加,则不符合要求。一遍匈牙利算法是O(n^3)的,对于每一条边做n次,每次O(n^2),总的复杂度是O(n^3)。注意:不要忘记输出none。 1 var a:array[0..1000,0..1000] of boolean; 2 ... 阅读全文
posted @ 2014-12-24 20:36 rpSebastian 阅读(250) 评论(0) 推荐(0)
摘要:先对整幅图进行二分图染色,再跑一遍匈牙利算法。 1 /* CODEVS1022 */ 2 #include 3 #include 4 #include 5 #include 6 7 #define maxn 10008 8 9 struct edge{ 10 i... 阅读全文
posted @ 2014-12-23 20:39 rpSebastian 阅读(238) 评论(0) 推荐(0)
摘要:直接跑匈牙利,注意到“只有当选手正确回答一道题后,才能进入下一题,否则就被淘汰”,一旦无法满足就直接退出。 1 #include 2 #include 3 #include 4 #define maxn 2008 5 #define maxm 10008 6 7 struct edge{ 8... 阅读全文
posted @ 2014-12-22 20:09 rpSebastian 阅读(253) 评论(0) 推荐(0)
摘要:先对整幅图进行二分图染色,再跑一遍匈牙利算法。如果最大匹配数=点数*2,那么输出WIN。对于任何一个非必须在最大匹配上的点,即为所求的点。 1 Program Test375num2; 2 type arr=record 3 u,v,next:longint; 4 ... 阅读全文
posted @ 2014-12-22 19:07 rpSebastian 阅读(247) 评论(0) 推荐(0)