Asteroids
http://poj.org/problem?id=3041
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
using namespace std;
const int MAXN=;
int n,k;
bool use[MAXN];
int from[MAXN],ans;
vector<int>g[MAXN];
bool match(int x)
{
for(int i=;i<g[x].size();i++)
{
if(!use[g[x][i]]){
use[g[x][i]]=true;
if(from[g[x][i]]==-||match(from[g[x][i]])){
from[g[x][i]]=x;
return true;
}
}
}
return false;
} int hun()
{ ans=;
memset(from,,sizeof(from));
for(int i=; i<=n; i++)
{
memset(use,false,sizeof(use));
if(match(i))
ans++;
}
return ans;
}
int main()
{
int a,b;
while(scanf("%d%d",&n,&k)!=EOF){
for(int i=;i<=k;i++)
{
scanf("%d%d",&a,&b);
g[a].push_back(b);
}
printf("%d\n",hun());
}
return ;
}
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
using namespace std;
const int MAXN=;
int n,k;
bool use[MAXN];
int match[MAXN],ans;
int g[MAXN][MAXN];
bool dfs(int x)
{
for(int i=;i<=n;i++)
{
if(!use[i]&&g[x][i]){
use[i]=true;
if(match[i]==-||dfs(match[i])){
match[i]=x;
return true;
}
}
}
return false;
} int hun()
{ ans=;
memset(match,-,sizeof(match));
for(int i=; i<=n; i++)
{
memset(use,false,sizeof(use));
if(dfs(i))
ans++;
}
return ans;
}
int main()
{
int a,b;
while(scanf("%d%d",&n,&k)!=EOF)
{
memset(g,,sizeof(g));
for(int i=; i<=k; i++)
{
scanf("%d%d",&a,&b);
g[a][b]=;
}
printf("%d\n",hun());
}
return ;
}
Asteroids的更多相关文章
- POJ 3041 Asteroids
最小点覆盖数==最大匹配数 Asteroids Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 12678 Accepted: ...
- Asteroids(匈牙利算法入门)
Asteroids Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 16211 Accepted: 8819 Descri ...
- hdu 1240:Asteroids!(三维BFS搜索)
Asteroids! Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total ...
- POJ 3041 Asteroids(最小点覆盖集)
Asteroids Time Limit: 1000MS Mem ...
- Asteroids (最小覆盖)
题目很简单,但是需要推到出二分图最大匹配 = 最小覆盖 最小覆盖:证明过程http://blog.sina.com.cn/s/blog_51cea4040100h152.html Descriptio ...
- poj 3041 Asteroids(最小点覆盖)
http://poj.org/problem?id=3041 Asteroids Time Limit: 1000MS Memory Limit: 65536K Total Submissions ...
- poj 3041 Asteroids (最大匹配最小顶点覆盖——匈牙利模板题)
http://poj.org/problem?id=3041 Asteroids Time Limit: 1000MS Memory Limit: 65536K Total Submissions ...
- HDU-1240 Asteroids! (BFS)这里是一个三维空间,用一个6*3二维数组储存6个不同方向
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission ...
- POJ 3041 Asteroids 最小点覆盖 == 二分图的最大匹配
Description Bessie wants to navigate her spaceship through a dangerous asteroid field in the shape o ...
- Asteroids(二分图最大匹配模板题)
Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 12323 Accepted: 6716 Description Bess ...
随机推荐
- typedef struct
突然忘了这玩意儿了..今天就来搞一发 typedef是类型定义的意思.typedef struct 是为了使用这个结构体方便.具体区别在于:若struct node {}这样来定义结构体的话.在申请n ...
- Android中的双向链表
1.看源代码必须搞懂Android的数据结构.在init源代码中双向链表listnode使用非常多,它仅仅有prev和next两个指针,没有不论什么数据成员.这个和linux内核的list_head如 ...
- win7 32/64bit VS2010 OpenCV 2.4.9 环境配置
作者 : 卿笃军 因为近期人脸识别须要用到OpenCV,让我開始了OpenCV学习. OpenCV 2.4.9下载地址:http://sourceforge.net/projects/opencvli ...
- DTD简单使用
DTD:Document Type Definition DTD是一种简单的XML约束模式语言 DTD文档必须以utf-8或unicode编码 注释方式与HTML.XML文档相同 DTD文档的引用:紧 ...
- TCO 2015 Round 1B DIV1 500 概率题
[题意]现在有一些线索,每个线索被发现的概率p[i],如果线索i被知道,那么其他线索也可能会被知道,用vector<string> c给出,c[i][j]='Y'表示知道i这个线索,j这个 ...
- JS 获取元素的属性值,非内联样式
//获取样式表的属性值,IE8及以下不兼容 ,方法 window.getComputedStyle(dom对象,"伪类").style属性; //IE8及以下获取样式表的属性值 ...
- EXT ajax简单实例
转载:http://www.cnblogs.com/xiepeixing/archive/2012/10/24/2736751.html EXT ajax request是ext中对于ajax请求的实 ...
- JavaScript_object(基于map和数组练习)
JavaScript在编程过程中,不会像java那么方便,提供大量的API让开发这直接去调用,但底层也封装大量的工具让开发者写方法去实现, 以map为例,写简单的增删改查模拟java中的map: fu ...
- 3.AOP入门1
1.定义1.1基本概念2. 1.定义 1.1基本概念 AOP:aspect object programing面向切面编程 aop编程的要点在于关注点和切入点 关注点:指的是代码中的重复部分,每次实现 ...
- Cisco CatOS系统交换机的SPAN配置
以下内容摘自最新上市的“四大金刚”图书之一<Cisco交换机配置与管理完全手册>(第二版)(其它三本分别为<Cisco路由器配置与管理完全手册>(第二版).<H3C交换机 ...