poj2239 poj1274【二分匹配】
题意:
就是尽可能的选多的课
思路:
把课程和上课的时间看作二分图
跑一跑二分匹配就好了
#include<iostream>
#include<cstdio>
#include<string.h>
#include<algorithm>
using namespace std;
#define INF 0x3f3f3f3f
#define N 350
int cos[10][20];
int ma[N][N];
bool vis[N];
int n;
int cx[N];
int cy[N];
int cnt;
//建立课程时间的图
void init()
{
cnt=1;
for(int i=1;i<=7;i++)
{
for(int j=1;j<=12;j++)
{
cos[i][j]=cnt++;
}
}
}
int findpath(int u)
{
for(int i=1;i<cnt;i++)
{
if(!vis[i]&&ma[u][i])
{
vis[i]=1;
if(cy[i]==-1||findpath(cy[i]))
{
cy[i]=u;
cx[u]=i;
return 1;
}
}
}
return 0;
}
int main()
{
init();
while(~scanf("%d",&n))
{
memset(ma,0,sizeof(ma));
for(int i=1;i<=n;i++)
{
int x,a,b;
scanf("%d",&x);
for(int j=1;j<=x;j++)
{
scanf("%d%d",&a,&b);
ma[i][cos[a][b]]=1;
}
}
memset(cx,-1,sizeof(cx));
memset(cy,-1,sizeof(cy));
int ans=0;
for(int i=1;i<=n;i++)
{
if(cx[i]==-1)
{
memset(vis,0,sizeof(vis));
ans+=findpath(i);
}
}
printf("%d\n",ans);
}
return 0;
}
题意:
(二分匹配基础题)
每个奶牛有自己喜欢去的谷仓,然后问最多有多少奶牛到了自己喜欢的谷仓;
思路:
把牛和谷仓作为二分图,跑一下匈牙利
#include<iostream>
#include<cstdio>
#include<math.h>
#include<stdlib.h>
#include<vector>
#include<string.h>
#include<algorithm>
using namespace std;
typedef long long LL;
#define INF 0x3f3f3f3f
#define PI acos(-1.0)
#define N 210
int cx[250];
int cy[250];
bool vis[250];
int ma[250][250];
int n,m;
int fun(int x)
{
for(int i=1;i<=m;i++)
{
if(!vis[i]&&ma[x][i])
{
vis[i]=1;
if(cy[i]==-1||fun(cy[i]))
{
cx[x]=i;
cy[i]=x;
return 1;
}
}
}
return 0;
}
int main()
{
while(~scanf("%d%d",&n,&m))
{
int si;
memset(ma,0,sizeof(ma));
for(int i=1;i<=n;i++)
{
scanf("%d",&si);
for(int j=1;j<=si;j++)
{
int x;
scanf("%d",&x);
ma[i][x]=1;
}
}
int ans=0;
memset(cx,-1,sizeof(cx));
memset(cy,-1,sizeof(cy));
for(int i=1;i<=n;i++)
{
if(cx[i]==-1)
{
memset(vis,0,sizeof(vis));
if(fun(i))
{
ans++;
}
}
}
printf("%d\n",ans);
}
return 0;
}
poj2239 poj1274【二分匹配】的更多相关文章
- poj1274 二分匹配
今天复习二分匹配,A 了一道模板题. 二分匹配需要理解增广路的寻找.用dfs来更新最大匹配.注意一些点:赋初值:愚蠢地把==写成了= ; 然后match的记值;每个点都要重新走一遍. #include ...
- POJ2239简单二分匹配
题意: 一周有7天,每天可以上12节课,现在给你每科课的上课时间,问你一周最多可以上几科课,一科课只要上一节就行了. 思路: 简单题目,直接二分就行了,好久没写二分匹配了,练习 ...
- POJ 1274 The Perfect Stall、HDU 2063 过山车(最大流做二分匹配)
The Perfect Stall Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 24081 Accepted: 106 ...
- [kuangbin带你飞]专题十 匹配问题 二分匹配部分
刚回到家 开了二分匹配专题 手握xyl模板 奋力写写写 终于写完了一群模板题 A hdu1045 对这个图进行 行列的重写 给每个位置赋予新的行列 使不能相互打到的位置 拥有不同的行与列 然后左行右列 ...
- BZOJ 1189 二分匹配 || 最大流
1189: [HNOI2007]紧急疏散evacuate Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1155 Solved: 420[Submi ...
- Kingdom of Obsession---hdu5943(二分匹配)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5943 题意:给你两个数n, s 然后让你判断是否存在(s+1, s+2, s+3, ... , s+n ...
- poj 2060 Taxi Cab Scheme (二分匹配)
Taxi Cab Scheme Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 5710 Accepted: 2393 D ...
- [ACM_图论] Sorting Slides(挑选幻灯片,二分匹配,中等)
Description Professor Clumsey is going to give an important talk this afternoon. Unfortunately, he i ...
- [ACM_图论] The Perfect Stall 完美的牛栏(匈牙利算法、最大二分匹配)
描述 农夫约翰上个星期刚刚建好了他的新牛棚,他使用了最新的挤奶技术.不幸的是,由于工程问题,每个牛栏都不一样.第一个星期,农夫约翰随便地让奶牛们进入牛栏,但是问题很快地显露出来:每头奶牛都只愿意在她们 ...
随机推荐
- 关于 redux-saga 中 take 使用方法详解
本文介绍了关于redux-saga中take使用方法详解,分享给大家,具体如下: 带来一个自己研究好久的API使用方法. redux-saga中effect中take这个API使用方式,用的多的是ca ...
- OSI七层模型详解(转)
OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助不同类型的主机实现数据传输 . 完成中继功能的节点通常称为中继系统.在OSI七层模型中,处于 ...
- 走入asp.net mvc不归路:[1]项目文件结构
先来了解一下一个asp.net mvc项目的文件结构. 1 项目文件结构一览 2 mvc,顾名思义,一个项目中最重要的就是这三个东西:M(Model,模型),V(View,视图),C(Controll ...
- 【转载】C#之C#、.NET Framework、CLR的关系
C#..NET Framework.CLR的关系 很多人没有将C#..NET Framework(.NET框架).CLR(Common Language Runtime,公共语言运行库)这三者之间的关 ...
- 说说怎样管理软件日常执行的server
大家应该都有这种情况.就是软件开发时都是全力以赴的把软件开发出来.一旦软件上线执行起来我们就能松口气.从而放松了对server及数据的管理.往往这个时候.server的一个小故障都能让我们忙上好一阵. ...
- IPv4与IPv6数据报格式
IPv4: IPv4数据报中的字段: 版本号:规定了数据报的IP协议版本,通过查看版本号,路由器能够确定如何解释IP数据报的剩余部分,因为不同IP版本使用不同的数据报格式. 首部长度:IPv4数据报可 ...
- linux 命令之 watch
watch能够帮你监測一个命令的执行结果,省得你一遍遍的手动执行.在Linux下.watch是周期性的执行下个程序.并全屏显示执行结果.你能够拿他来监測你想要的一切命令的结果变化,比方 tail 一个 ...
- Arcgis Engine(ae)接口详解(8):临时元素(element)
//主地图的地图(map)对象 IMap map = null; IActiveView activeView = null; //IGraphicsContainer用于操作临时元素,可以通过map ...
- Devices下设备的进程显示为问号的问题
adb shell getprop ro.debuggable 返回 ro.debuggable=0 说明这个机子的版本不是userdebug版本,是user版本 只有这 ...
- Apache Qpid CPP的编译与安装
单机Broker部署(windows/linux) 在Windows/Linux上部署QPID Broker的方法. Windows 需要预先准备的文件和程序 qpid-cpp-0.32.tar.gz ...