摘要: 题意很容易理解,读完题还是没想到用匈牙利算法,很神奇,怎么就跟最大匹配扯一块了呢原来是最小覆盖问题 怎么看出的是最小覆盖 神奇之一http://ip96cns.blog.163.com/blog/static/170095192201102452319234/这几句话比较喜欢这种把坐标上的点转化成图的线的方法,一种从坐标系到图的转化思想,值得记下来。而其中的隐含关系是,坐标系的一行,一列,对应二分图上的两个点集,如此云云,博主已近乎疯狂。。。。。”还有什么konning定理,最小覆盖=最大匹配数 神奇之二代码就是一般的求最大匹配了 不神奇贴之:#include<iostream># 阅读全文
posted @ 2012-02-03 02:31 快乐. 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 题意很容易理解,就是拓扑排序 实现起来不容易,起码我觉得是这样首先 用拓扑排序检查是否有环 如果没环路 再用floyd传递闭包 (传递闭包 好专业的术语喔),再判断序列是否唯一学了一下拓扑排序,不难,就是先算出每个点的入度 ,找出入度为0 ,比如 i 作为第一个,然后比如map[i][j]==1 i,j 之间存在 i->j的边则从cnt[j]--,即 j 的入度减一 然后再找入度为0的点。。。floyd传递闭包 判断序列是否唯一的方法!代码:#include<iostream>#include<cstdio>#include<string>#inclu 阅读全文
posted @ 2012-02-03 02:19 快乐. 阅读(196) 评论(0) 推荐(0) 编辑