hdu4619
题解:
最大独立集问题
显然对于每一对交叉的建边
然后求出最大独立集
最大独立集=n-最大匹配
代码:
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<cstring>
using namespace std;
const int N=;
int x[N],f[N],match[N],y[N],fi[N],num,ne[N],zz[N],n,m;
int dfs(int x)
{
for (int i=fi[x];i;i=ne[i])
if (!f[zz[i]])
{
f[zz[i]]=;
if (!match[zz[i]]||dfs(match[zz[i]]))
{
match[zz[i]]=x;
return ;
}
}
return ;
}
void jb(int x,int y)
{
ne[++num]=fi[x];
fi[x]=num;
zz[num]=y;
}
int main()
{
while (~scanf("%d%d",&n,&m),n||m)
{
memset(fi,,sizeof fi);
memset(match,,sizeof match);
num=;
for (int i=;i<=n;i++)scanf("%d%d",&x[i],&y[i]);
for (int i=;i<=m;i++)scanf("%d%d",&x[i+n],&y[i+n]);
for (int i=;i<=n;i++)
for (int j=;j<=m;j++)
if (x[i]==x[j+n]&&(y[i]==y[j+n]||y[i]==y[j+n]+)||
x[i]+==x[j+n]&&(y[i]==y[j+n]||y[i]==y[j+n]+))jb(i,j);
int ans=;
for (int i=;i<=n;i++)
{
memset(f,,sizeof f);
ans+=dfs(i);
}
printf("%d\n",n+m-ans);
}
return ;
}
hdu4619的更多相关文章
- HDU-4619 Warm up 2 二分匹配
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4619 一看就知道是二分匹配题目,对每个点拆点建立二分图,最后答案除2.因为这里是稀疏图,用邻接表处理. ...
- HDU4619+匈牙利
/* 匈牙利算法 二分匹配 最小点覆盖=最大匹配. 即踢掉最小点覆盖 */ #include<stdio.h> #include<string.h> #include<s ...
- hdu4619 / 最大独立集
题意,一个矩阵,上面可以横放或者竖着放骨牌(1X2)保证横的与横的不重叠,竖的和竖的不重叠,求拿掉最小的牌,使所有的都不重叠. 分析:一看,不重叠就是没有边,拿最少,就是留最多,最大独立集啊!二分图, ...
- 2013 Multi-University Training Contest 2
HDU-4611 Balls Rearrangement 题意:具体题意不大清楚,最后要处理一个这样的表达式:sum{ |i % a - i % b| },0 <= i < N 的取值很大 ...
- Warm up 2
hdu4619:http://acm.hdu.edu.cn/showproblem.php?pid=4619 题意:题目大意:给你两种纸牌 ,一种水平放置共有n张 ,一种竖直放置共有m张.水平放置的纸 ...
- 二分图匹配-HK算法
先把代码贴上,其他南京回来再补了.. #include <cstdio> #include <cstdlib> #include <cstring> #includ ...
随机推荐
- bzoj1101【POI007】Zap
1101: [POI2007]Zap Time Limit: 10 Sec Memory Limit: 162 MB Submit: 1950 Solved: 735 [id=1101" ...
- Tflearn的安装
scipy-doc安装 sudo apt-get install python-scipy-doc安装python-scipy-doc h5py安装 sudo pip install h5py sci ...
- 你真的会用Gson吗?Gson使用指南
你真的会用Gson吗?Gson使用指南(一) 你真的会用Gson吗?Gson使用指南(二) 你真的会用Gson吗?Gson使用指南(三) 你真的会用Gson吗?Gson使用指南(四)
- struts2基础——需要注意的几点
struts是流行和成熟的基于MVC设计模式的web应用程序框架,使用struts可以帮助我们减少运用MVC设计模型来开发web应用的时间. 目录: 一.struts2的工作原理及文件结构 二.三种访 ...
- python之路 面向对象进阶篇
一.字段 字段包括:普通字段和静态字段,他们在定义和使用中有所区别,而最本质的区别是内存中保存的位置不同, 普通字段属于对象 静态字段属于类 class Province: # 静态字段 countr ...
- HDFS 详解
HDFS 概述 基于2.7.3 HDFS 优点: 1.高容错性 数据自动保存多个副本,默认是三个副本 副本丢失后,会自动恢复 2.适合批处理 移动计算而非移动数据,批处理的时候,数据量很大,移动数据是 ...
- Rock-Paper-Scissors-Lizard-Spock Python实现
初学python,实现一些很有意思的小游戏是很能提高编程能力的. Rock-Paper-Scissors-Lizard-Spock http://en.wikipedia.org/wiki/Rock- ...
- Docker 使用指南 —— 基本操作
Docker 是一个能够把开发应用程序自动部署到容器的开源引擎.它由Docker公司的团队编写,基于Apache 2.0开源协议授权.它提供了一个简单.轻量的建模方式,使开发生命周期更高效快速,鼓励了 ...
- Qios RibbonForm QRibbonCaption添加qRibbonApplicationButton无法最大化问题
winform 用了Qios DevSuite系列的控件. RibbonForm中QRibbonCaption添加qRibbonApplicationButton之后无法最大化. 修改qRibbonA ...
- Linux x86架构下ACPI PNP Hardware ID的识别机制
转:https://blog.csdn.net/morixinguan/article/details/79343578 关于Hardware ID的用途,在前面已经大致的解释了它的用途,以及它和AC ...