【海岛帝国系列赛】No.7 海岛帝国:神圣之日
50237242海岛帝国:神圣之日
【试题描述】
战争持续九个月了。“购物券”WHT的军队还在跟恐怖分子僵持着。WHT和LJX已经向“公务员”告急,情况不宜乐观。YSF为守护帝国决定打开“够累 的”星际仓库来化解恐怖分子的威胁。他和LTJ、WHT、LJX、YSM、LYF等人来到了传说中的星际仓库的防爆门前。“郭同学”TONY,“演 员”KLINT,“美的”STEVE……都被恐怖分子的间谍困在里面。由于情况复杂,恐怖分子在门上加了一层层密码,如果没有顺利答对,“蝴蝶”将会引 爆。整个城市将毁灭。门上有这样一幅图,一排有两个空位,地下散落着N枚“微型机器人”其中编号1,2,3表示TX型号(呵呵呵,大家都知道“州长” 吧)4,5,6表示T-5000型号,每排必须有TX、T-5000型号各一个。当把两个机器人插在一排时,如果这两个机器人互相感应就会亮起红灯。要求 尽量让有感应的机器人插在一起。请问如何摆放,才能让最多的机器人满足条件?
【输入要求】
* 第一行两个正整数N,M,表示有N个机器人,有M个关系道
* 接下来M行:每行两个数A,B表示机器人A和B之间有感应
【输出要求】
* 一行:表示能满足的最大值
【输入实例】
6 5
1 4
1 5
2 5
2 6
3 4
【输出实例】
3
【其他说明】
依旧,
M均小于40
N均小于10
【试题分析】
这里用到了二分图匹配,所以我们先来了解一下,什么是二分图。
简而言之,就是顶点集V可分割为两个互不相交的子集,并且图中每条边依附的两个顶点都分属于这两个互不相交的子集,两个子集内的顶点不相邻。

上图中U和V构造的点集所形成的循环圈不为奇数,所以是二分图。

上图中U和V和W构造的点集所形成的的循环圈为奇数,所以不是二分图。
最大匹配
算法
1 最大匹配
在G的一个子图M中,M的边集中的任意两条边都不依附于同一个顶点,则称M是一个匹配。选择这样的边数最大的子集称为图的最大匹配问题,最大匹配的边数称
为最大匹配数.如果一个匹配中,图中的每个顶点都和图中某条边相关联,则称此匹配为完全匹配,也称作完备匹配。如果在左右两边加上源汇点后,图G等价于一
个网络流,最大匹配问题可以转为最大流的问题。解决此问的匈牙利算法的本质就是寻找最大流的增广路径。上图中的最大匹配如下图红边所示:
2 最优匹配
最优匹配又称为带权最大匹配,是指在带有权值边的二分图中,求一个匹配使得匹配边上的权值和最大。一般X和Y集合顶点个数相同,最优匹配也是一个完备匹配,即每个顶点都被匹配。如果个数不相等,可以通过补点加0边实现转化。一般使用KM算法解决该问题。
3 最小覆盖
二分图的最小覆盖分为最小顶点覆盖和最小路径覆盖:
①最小顶点覆盖是指最少的顶点数使得二分图G中的每条边都至少与其中一个点相关联,二分图的最小顶点覆盖数=二分图的最大匹配数;
②最小路径覆盖也称为最小边覆盖,是指用尽量少的不相交简单路径覆盖二分图中的所有顶点。二分图的最小路径覆盖数=|V|-二分图的最大匹配数;
4 最大独立集
最大独立集是指寻找一个点集,使得其中任意两点在图中无对应边。对于一般图来说,最大独立集是一个NP完全问题,对于二分图来说最大独立集=|V|-二分图的最大匹配数。如下图中黑色点即为一个最大独立集:
设G=(V,E)是一个无向图。如顶点集V可分割为两个互不相交的子集,并且图中每条边依附的两个顶点都分属两个不同的子集。则称图G为二分图。也就是说在二分图中,顶点可以分为两个集
X和Y,每一条边的两个顶点都分别位于X和Y集合中。
【以上内容为转载】
求二分图最大匹配的方法最容易想到的就是找出全部匹配,然后输出配对数最多的。但这种方法的时间复杂度非常高,那么,有没有更好的方法呢?
当然,如果找到一条增广路,那么配对数就会加一,它的本质就是一条路径的起点和终点都是未配对的点。如果在当下再也找不到增广路,那么当前就是最大匹配了。
【代码】
#include<iostream>
using namespace std;
int e[][];
int match[];
int book[];
int n,m;
int dfs(int u)
{
int i;
for(i=;i<=n;i++)
if(book[i]==&&e[u][i]==)
{
book[i]=;
if(match[i]==||dfs(match[i]))
{
match[i]=u;
match[u]=i;
return ;
}
}
return ;
}
int main()
{
int i,j,t1,t2,sum=;
scanf("%d%d",&n,&m);
for(int i=;i<=m;i++)
{
cin>>t1>>t2;
e[t1][t2]=;
e[t2][t1]=;
}
for(i=;i<=n;i++) match[i]=;
for(i=;i<=n;i++)
{
for(j=;j<=n;j++) book[j]=;
if(dfs(i)) sum++;
}
printf("%d",sum);
}
【海岛帝国系列赛】No.7 海岛帝国:神圣之日的更多相关文章
- 【海岛帝国系列赛】No.6 海岛帝国:战争前线
50234237海岛帝国:战争前线 [试题描述] 总指挥官WHT出神入化的计谋虽然大有用武之地,但是聪明的恐怖分子们采取了城市核武器防御系统,可以有效地抵制WHT的炸弹.YSF对此头痛不已,因此 召开 ...
- 【海岛帝国系列赛】No.5 海岛帝国:独立之战
50229234海岛帝国:独立之战 [试题描述] 恐怖分子多年来一直如饥似渴地渴求“药师傅”帝国,但是,“里脊肉”BANNIE时刻在守护着这一方水土.从而使帝国日益强大.如今,BANNIE由于在 “牡 ...
- 【海岛帝国系列赛】No.4 海岛帝国:LYF的太空运输站
50212228海岛帝国:LYF的太空运输站 [试题描述] 最近,“购物券”WHT在“药师傅”帝国资源大会上提出了“SSTS”太空运输站计划.由于恐怖分子前些日子刚猖狂完,炸毁高楼无数,YSF不得不执 ...
- 【海岛帝国系列赛】No.3 海岛帝国:运输资源
海岛帝国:运输资源 [试题描述] YSF考虑到“药师傅”帝国现在资源极度不平均,于是,商讨启用南水北调工程.YZM为首席工程师.现在,YSF由于工作紧张,准备军用物资和民用物资.但他要时时关注运输工程 ...
- 【海岛帝国系列赛】No.2 海岛帝国:“落汤鸡”市的黑帮危机
50200210海岛帝国:“落汤鸡”市的黑帮危机 [试题描述] 近几天,犯罪分子发现“药师傅”帝国的警力约等于0.(请见YSF的海岛帝国)于是开始猖狂了起来.他们选择了依山靠水(农村?)的“落汤鸡”市 ...
- 【海岛帝国系列赛】No.1 海岛帝国:诞辰之日
50111117海岛帝国:诞辰之日 [试题描述] YSF自从上次“被盗投降”完(带着一大堆债)回去以后,YSF对“海盗”怀念至今,他想要建立一个“药师傅”海岛帝国. 今天,他要像“管理部”那样去探寻 ...
- 帝国cms7.0忘记后台管理账户用户名密码
最近刚登陆以前的网站,但是发现自己的后台管理用户名密码已经忘记,于是到帝国cms论坛里面找了一下解决方案,成功解决问题.特此分享一下解决成功经验. 原帖地址:http://bbs.phome.net/ ...
- Java开发笔记(四)Java帝国的度量衡
秦始皇统一中国之后,实行“书同文,车同轨”,把货币和各种度量衡都统一起来,从而缔造了一个秩序井然的帝国.既然统一度量衡是每个帝国都要做的事情,Java帝国也不例外,对于人生地不熟的初学者来说,只有认识 ...
- DEDEcms和帝国cms的几点比较
前言:最近有很多人问我DEDEcms和帝国cms哪个比较好,我之前用2个都做过站的,所以能够说出它们大体的区别. 声明:我在此说明的是我一贯用的两种建站体统的感受,没有诋毁或者提升哪个系统!两个系统都 ...
随机推荐
- LightOj1028 - Trailing Zeroes (I)---求因子个数
题目链接:http://lightoj.com/volume_showproblem.php?problem=1028 题意:给你一个数 n (1<=n<=10^12), 然后我们可以把它 ...
- Ant学习-001-ant 基础知识及windows环境配置
一.Ant 概要基础知识 Apache Ant 是一个将软件编译.测试.部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发,用以构建应用,或结合其他开源测试工具例如 git.T ...
- c#上传文件(二)使用文件流保存文件
1.html代码: <asp:FileUpload runat="server" ID="UpLoadFile"/> <asp:Button ...
- iOS:FFmpeg视频播放和直播框架
视频直播和播放转码器框架 介绍: FFmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开源计算机程序.采用LGPL或GPL许可证. 它提供了录制.转换以及流化音视频的完整解决方案.它 ...
- Android 关于ListView中adapter调用notifyDataSetChanged无效的原因
话说这个问题已经困扰我很久了,一直找不到原因,我以为只要数据变了,调用adapter的notifyDataSetChanged就会更新列表,最近在做微博帐号管理这一块,想着动态更新列表,数据是变了,但 ...
- 30天,O2O速成攻略【8.15济南站】
活动概况 时间:2015年08月15日13:30-16:30 地点:山东大学凤岐茶社(山东大学中心校区北门18号楼东连廊一层) 主办:APICloud.蚁巡 网址:www.apicloud.com 费 ...
- JBOSS /invoker/JMXInvokerServlet 利用工具 .
链接: http://pan.baidu.com/s/1F8bMI 密码: 1h2r 工具使用说明 1. 查看系统名称 java -jar jboss_exploit_fat.jar -i http: ...
- MVC项目实践,在三层架构下实现SportsStore-08,部署到IIS服务器
SportsStore是<精通ASP.NET MVC3框架(第三版)>中演示的MVC项目,在该项目中涵盖了MVC的众多方面,包括:使用DI容器.URL优化.导航.分页.购物车.订单.产品管 ...
- Enum 绑定到 RadioButton
参考 这篇文章. 和 http://www.cnblogs.com/626498301/archive/2012/05/22/2512958.html
- Java基础之集合框架——使用HashMap地图(TryPhoneBook1)
控制台程序. 首先改进Peron类,使Person可以在地图中用作键,进而存储电话簿中的项.必须添加equals()方法并重写默认的hashCode()方法. import java.io.*; pu ...