摘要:
这道题目求的是最小的代价,我们每选择某一行/列就会产生代价,故将行/列作为二分图的节点,然后就可以知道求的是最小点覆盖 这里我还要写一下konig定理的另一种证明 首先证明合法性。在求出最大匹配后,我们从每条匹配边任选一个点组成一个点集\(S\)(注意根据定义,不同匹配边的两个端点是不同的,假设最大 阅读全文
摘要:
这道题目有个很显然的二分图就是将猫和狗分开,但是你会发现这样根本做不出来题目,所以我们考虑更扩展的东西 这道题目要我们求最多的客户,我们最开始是把客户当成边,跑最大匹配,发现不行,所以我们现在尝试把客户当成点 想到什么?对,就是最大独立集 于是,我们考虑如何建图 回想一下独立集:任意两点没有边相连 阅读全文
摘要:
这道题目从感觉上来看,应该是匈牙利的模板的过程中,如果遇到某个点找不到增广路,直接结束循环,即 for(int i=1;i<=m;i++) { memset(vis,0,sizeof(vis)); if(dfs(i)) ans++; else break; } 事实上,这确实是答案,那么为什么是对的 阅读全文
摘要:
这道题目显然先建反图,然后考虑什么时候能够确定关系 首先给出的匹配一定要是完备匹配,否则的话就无解 然后我们对所有的完备匹配求交集,就会发现求的是完备匹配的必须边了 上面给的方法的复杂度是\(O(n^4)\),实际上我们可以优化到\(O(n^3)\),也就是用“排版幻灯片”这道题目的方法 updat 阅读全文
摘要:
这道题目非常好,是一道二分图染色的典型题目,记住 见这篇题解 然后说一种错误做法:求原图的SCC然后缩点讨论 比如上图,其实是不能作为一个组的,因为第二个点其实并不认识第一个点(题目没有说有传递性) update 2024.5.30 自己重新做的时候做出来啦 首先就是记住这个二分图补图的技巧。本来最 阅读全文
摘要:
所以就是一道二分图最大匹配的简单题目 阅读全文