随笔分类 -  二分匹配

摘要:Problem DescriptionDo you remember the box of Matryoshka dolls last week? Adam just got another box of dolls from Matryona. This time, the dolls have different shapes and sizes: some are skinny, some are fat, and some look as though they were attened. Specifically, doll i can be represented by three 阅读全文
posted @ 2013-04-20 19:40 zlyblog 阅读(265) 评论(0) 推荐(0) 编辑
摘要:证明最大匹配=最小点集覆盖http://blog.csdn.net/wmn_wmn/article/details/7275648Sample Input4 4*.*..******...*.Sample Output4题意:有一块地,由于下雨,使部分面积出现泥泞,但牛只吃干净的草,现在想把出现泥泞的地方用木板铺盖上,这样牛的蹄子就不会因为踩到泥泞的地方弄脏草地上的草;一个n行m列的矩阵,"*“代表泥泞的土地,”.“代表草地,求最少覆盖的木板个数。注意:木板宽始终为1,长不限制;求最小覆盖=最大匹配;解析:这里我用0表示草地,则按行来铺木板,最有个数是51 0 2 0 0 3 3 3 阅读全文
posted @ 2012-08-03 20:35 zlyblog 阅读(226) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2255[KM算法的几种转化]KM算法是求最大权完备匹配,如果要求最小权完备匹配怎么办?方法很简单,只需将所有的边权值取其相反数,求最大权完备匹配,匹配的值再取相反数即可。KM算法的运行要求是必须存在一个完备匹配,如果求一个最大权匹配(不一定完备)该如何办?依然很简单,把不存在的边权值赋为0。KM算法求得的最大权匹配是边权值和最大,如果我想要边权之积最大,又怎样转化?还是不难办到,每条边权取自然对数,然后求最大和权匹配,求得的结果a再算出e^a就是最大积匹配。至于精度问题则没有更好的办法了。(详细关于 阅读全文
posted @ 2012-08-03 20:08 zlyblog 阅读(273) 评论(0) 推荐(0) 编辑
摘要:View Code 1 #include<stdio.h> 2 #include<string.h> 3 int t,n,m,num,map[1001][1001],a[1001],b[1001]; 4 int dfs(int x) 5 { 6 int i; 7 for(i=1;i<=m;i++) 8 { 9 if(map[x][i]&&b[i]==0)//对其进行覆盖10 {11 b[i]=1;12 if(a[i]==-1||dfs(a[i]))13 {14 ... 阅读全文
posted @ 2012-08-02 14:45 zlyblog 阅读(354) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示