摘要: 裸的最小路径覆盖最小路径覆盖=顶点数-二分图最大匹配// File Name: 1422.cpp// Author: zlbing// Created Time: 2013/2/27 19:20:35#include<iostream>#include<string>#include<algorithm>#include<cstdlib>#include<cstdio>#include<set>#include<map>#include<vector>#include<cstring># 阅读全文
posted @ 2013-02-27 19:44 z.arbitrary 阅读(175) 评论(0) 推荐(0) 编辑
摘要: http://blog.csdn.net/sdj222555/article/details/7426592大意就是有n个人,每个人与其他的某几个人有关系,这个关系且称为浪漫关系,然后最后求一个最大的集合,使得集合中所有的人两两之间都不存在浪漫关系。看到之后就可以发现,这是一道非常明显的最大独立集的问题,可以转化为二分图来做,还是最经典的拆点建图,然后根据定理,最大独立集=顶点数-最小点覆盖数。 而对于这道题来说,我们可以发现这个浪漫关系是相互的。而我们的建图中,按理来说应该是一边是男的点,一边是女的点这样连边,但是题目中没说性别的问题。只能将每个点拆成两个点,一个当作是男的点,一个当作是女的 阅读全文
posted @ 2013-02-24 01:15 z.arbitrary 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 二分图最大匹配每个学生只能代表一个课程,每个课程最多有一个代表。问能否合法。最大匹配数等于课程则输出“YES”。// File Name: 1469.cpp// Author: zlbing// Created Time: 2013/2/23 22:15:52#include<iostream>#include<string>#include<algorithm>#include<cstdlib>#include<cstdio>#include<set>#include<map>#include<vect 阅读全文
posted @ 2013-02-24 00:08 z.arbitrary 阅读(217) 评论(0) 推荐(0) 编辑
摘要: RT 阅读全文
posted @ 2013-02-23 22:37 z.arbitrary 阅读(184) 评论(2) 推荐(0) 编辑
摘要: 摘自http://www.cnblogs.com/kuangbin/archive/2012/08/26/2657446.html二分图匹配(匈牙利算法)1。一个二分图中的最大匹配数等于这个图中的最小点覆盖数König定理是一个二分图中很重要的定理,它的意思是,一个二分图中的最大匹配数等于这个图中的最小点覆盖数。如果你还不知道什么是最小点覆盖,我也在这里说一下:假如选了一个点就相当于覆盖了以它为端点的所有边,你需要选择最少的点来覆盖所有的边。2。最小路径覆盖=最小路径覆盖=|G|-最大匹配数注意:最小路径覆盖不适用于非DAG的有向图在一个N*N的有向图中,路径覆盖就是在图中找一些路经 阅读全文
posted @ 2013-02-23 21:32 z.arbitrary 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 刘汝佳新书--训练指南题意:你需要花费不超过cost元来搭建一个比赛网络。网络中有n台机器,编号0~n-1,其中机器0为服务器,其他机器为客户机。一共有m条可以使用的网线,其中第i条网线的发送端是机器ui,接收端是机器vi(数据只能从机器ui单向传输到机器vi),带宽是bi Kbps,费用是ci元。每台客户机应当恰好从一台机器接收数据。你的任务是最大化网络中的最小带宽。分析:最小树形图,然后二分答案最小带宽。// File Name: 11865.cpp// Author: zlbing// Created Time: 2013/2/17 22:36:04#include<iostrea 阅读全文
posted @ 2013-02-17 23:43 z.arbitrary 阅读(635) 评论(0) 推荐(0) 编辑
摘要: 最小树形图http://blog.csdn.net/wsniyufang/article/details/6747392题意:给出一个有向图,求以root为根的最小树形图// File Name: 3164.cpp// Author: zlbing// Created Time: 2013/2/17 18:46:24#include<iostream>#include<string>#include<algorithm>#include<cstdlib>#include<cstdio>#include<set>#inclu 阅读全文
posted @ 2013-02-17 22:32 z.arbitrary 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 刘汝佳新书--训练指南题意:秦朝有n个城市,需要修建一些道路使得任意两个城市之间都可以连通。道士徐福声称他可以用法术修路,不花钱,也不用劳动力,但只能修一条路,因此需要慎重选择用那一条路。秦始皇不仅希望其他道路总长度B尽量短,还希望法术连接的两个城市的人口之和A尽量大,因此下令寻找一个使A/B最大的方案。你的任务是找出这个方案分析:先求出最小生成树,在枚举边u-v之后删除最小生成树中u和v之间唯一路径上的最大权maxcost[u][v]。只需在预处理时用O(n^2)时间算出maxcost数组,问题得到解决// File Name: 1494.cpp// Author: zlbing// Cre 阅读全文
posted @ 2013-02-17 15:55 z.arbitrary 阅读(373) 评论(0) 推荐(0) 编辑
摘要: 刘汝佳新书--训练指南题意:给定一个有向图,每条边都有一个权值。每次你可以选择一个结点v和一个整数d,把所有以v为终点的边的权值减小d,把所有以v为起点的边的权值增加d,最后让所有边的权值的最小值大于零且尽量大。分析:因为不同的操作互不影响,因此可以按任意顺序实施这些操作。另外,对于同一个点的多次操作可以合并,因此可以令sum(u)为作用于结点u之上的所有d之和。这样,本题的目标就是确定所有的sum(u),使得操作之后所有边权的最小值尽量大。“最小值最大”使用二分答案的方法。二分答案x之后,问题转化为是否可以让操作完毕后每条边的权值均不小于x。对于边a->b,不难发现操作完毕后它的权值为 阅读全文
posted @ 2013-02-15 15:10 z.arbitrary 阅读(704) 评论(0) 推荐(1) 编辑
摘要: 题意:给定一个n个点m条边的加权有向图,求平均权值最小的回路。分析:使用二分法求解。对于一个猜测值mid,只需要判断是否存在平均值小于mid的回路。如何判断呢?假设存在一个包含k条边的回路,回路上各条变的权值为w1,w2,....,wk,那么平均值小于mid意味着w1+w2+....+wk《K*mid,即:(w1-mid)+(w2-mid)+...+(wk-mid)<0换句话说,只要把每条边(a,b)的全w(a,b)变成w(a,b)-mid,再判断新图中是否有负权回路即可。// File Name: 11090.cpp// Author: zlbing// Created Time: 2 阅读全文
posted @ 2013-02-15 00:31 z.arbitrary 阅读(476) 评论(0) 推荐(0) 编辑