hdu 4619 Warm up 2 ( 二分图最大匹配 )

时间:2021-09-29 22:52:28

题目:Warm up 2

题意:有横竖两种方式放着的多米诺骨牌,相同方向的不可能重叠,但是横放和竖放

            的牌可能重叠。移走重叠的牌使剩下的牌最多。

分析:二分图匹配:最大独立集=顶点数-最大匹配数

            横放的为一个点集,竖放的为一个点集。

代码:

#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std; struct node
{
int x1,y1;
int x2,y2;
}hori[1010],ver[1010];
int g[1010][1010];
int vis[1010];
int match[1010];
int m,n; bool dfs(int u)
{
int i;
for(i=0;i<m;i++)
{
if(g[u][i] && !vis[i])
{
vis[i]=true;
if(match[i]==-1||dfs(match[i]))
{
match[i]=u;
return true;
}
}
}
return false;
}
int main()
{
int i,j,cnt,ans;
while(scanf("%d%d",&n,&m)&&n&&m)
{
memset(match,-1,sizeof(match));
memset(g,0,sizeof(g));
cnt=0;
for(i=0;i<n;i++)
{
scanf("%d%d",&hori[i].x1,&hori[i].y1);
hori[i].x2=hori[i].x1+1;
hori[i].y2=hori[i].y1;
cnt++;
}
for(i=0;i<m;i++)
{
scanf("%d%d",&ver[i].x1,&ver[i].y1);
ver[i].x2=ver[i].x1;
ver[i].y2=ver[i].y1+1;
cnt++;
}
//printf("cnt=%d\n",cnt);
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
if(hori[i].x1==ver[j].x1 && hori[i].y1==ver[j].y1)
g[i][j]=true;
else if(hori[i].x2==ver[j].x1 && hori[i].y2==ver[j].y1)
g[i][j]=true;
else if(hori[i].x1==ver[j].x2 && hori[i].y1==ver[j].y2)
g[i][j]=true;
else if(hori[i].x2==ver[j].x2 && hori[i].y2==ver[j].y2)
g[i][j]=true;
}
}
ans=0;
for(i=0;i<n;i++)
{
memset(vis,0,sizeof(vis));
if(dfs(i)) ans++;
}
//printf("ans=%d\n",ans);
printf("%d\n",cnt-ans);
}
return 0;
}

hdu 4619 Warm up 2 ( 二分图最大匹配 )的更多相关文章

  1. hdu 4619 Warm up 2 二分图匹配

    题目链接 给两种长方形, 水平的和垂直的, 大小都为1*2, n个水平的, m个垂直的, 给出它们的坐标. 水平的和垂直的可以相互覆盖, 但是同种类型的没有覆盖. 去掉一些长方形, 使得剩下的全部都没 ...

  2. &lbrack;HDU&rsqb; 2063 过山车&lpar;二分图最大匹配&rpar;

    题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=2063 女生为X集合,男生为Y集合,求二分图最大匹配数即可. #include<cstdio&gt ...

  3. HDU 1045 - Fire Net - &lbrack;DFS&rsqb;&lbrack;二分图最大匹配&rsqb;&lbrack;匈牙利算法模板&rsqb;&lbrack;最大流求二分图最大匹配&rsqb;

    题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1045 Time Limit: 2000/1000 MS (Java/Others) Mem ...

  4. hdu 4619 Warm up 2(并查集)

    借用题解上的话,就是乱搞题.. 题意理解错了,其实是坐标系画错了,人家个坐标系,我给当矩阵画,真好反了.对于题目描述和数据不符的问题,果断相信数据了(这是有前车之鉴的hdu 4612 Warm up, ...

  5. HDU 4619 Warm up 2 贪心或者二分图匹配

    给同一张横着的牌的所在的格子编同一样的号,这些格子对应x集合,给同一张竖着的牌所在的格子编同一样的号,对应y集合,同一个格子上既有横着的牌又有竖着的牌,那么就建一条边,有冲突就要拿走一张,结果是总的牌 ...

  6. &lbrack;HDU&rsqb; 1068 Girls and Boys&lpar;二分图最大匹配&rpar;

    题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1068 本题求二分图最大独立点集.因为最大独立点集=顶点数-最大匹配数.所以转化为求最大匹配.因为没有给 ...

  7. HDU 4619 Warm up 2 最大独立集

    Warm up 2 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=4619 Description Some 1×2 dominoes are pla ...

  8. hdu 4619 Warm up 2 &lpar;二分匹配)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4619 题意: 平面上有一些1×2的骨牌,每张骨牌要么水平放置,要么竖直放置,并且保证同方向放置的骨牌不 ...

  9. hdu 4619 Warm up 2

    http://acm.hdu.edu.cn/showproblem.php?pid=4619 根据题意可知,每一个方格可能只被一个骨牌覆盖 可能被两个骨牌覆盖 也可能不被覆盖 有一个骨牌覆盖的方格(单 ...

随机推荐

  1. spring mvc处理静态资源

    servlet的url映射定义为'/'表示映射全部路径 struts的过滤器是*.action,在spring mvc中设置成*.action或者*.do......也是可以的,但是spring mv ...

  2. C语言-03-流程控制

    一.选择结构 1> if语句 使用注意 ① if语句中的条件语句,不要把==和=弄混,可以把常量作为左值, 这样的话,在无用=的情况下,编译时会报错 ② if语句后若要定义新的变量或者有多条语句 ...

  3. 安装qmake与环境变量解析

    转自:http://www.kuqin.com/qtdocument/qmake-manual-2.html 安装qmake 当Qt被连编的时候,默认情况下qmake也会被连编. 这一部分解释如何手工 ...

  4. Object-C Init

    上一篇为Object-C类实现 我们可以创建一个init方法用来给我们的实例变量设置初始化值: - (id)init { if(self = [super init]) { [self setCapt ...

  5. C&num;反射调用程序集类中方法

    建立类 class OperatorClass { /// <summary> /// 加法 /// </summary> /// <param name="x ...

  6. loadrunner常用函数总结

    事务函数:lr_end_sub_transaction 标记子事务的结束以便进行性能分析lr_end_transaction 标记 LoadRunner 事务的结束lr_end_transaction ...

  7. JSP模板文本

    JSP模板文本: http://book.51cto.com/art/200907/136020.htm JSP页面就是带有JSP元素的常规Web页面,它是由JSP模版文本和JSP元素组成的.在一个J ...

  8. &lbrack;转载&rsqb;转载一篇好文章作为Java与面向对象之随感&lpar;3&rpar;

    关于对象与引用之间的一些基本概念. 初学Java时,在很长一段时间里,总觉得基本概念很模糊.后来才知道,在许多Java书中,把对象和对象的引用混为一谈.可是,如果我分不清对象与对象引用, 那实在没法很 ...

  9. 洛谷P3434 &lbrack;POI2006&rsqb;KRA-The Disks(线段树)

    洛谷题目传送门 \(O(n)\)的正解算法对我这个小蒟蒻真的还有点思维难度.洛谷题解里都讲得很好. 考试的时候一看到300000就直接去想各种带log的做法了,反正不怕T...... 我永远只会有最直 ...

  10. Mongodb分片集群技术&plus;用户验证

    随着数据量持续增多,后续迟早会出现一台机器硬件瓶颈问题的.而mongodb主打的就是海量数据架构,“分片”就用这个来解决这个问题. 从图中可以看到有四个组件:mongos.config server. ...