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 ...
随机推荐
- vue-cli 中 使用vue-resource 输出后台数据
阅读此文前,请了解vue-cli 组件如何使用 http://www.cnblogs.com/pearl07/p/6252116.html 1,mock(模拟)后台数据(新建data.Json文件) ...
- mysql主从复制 详解
转自 http://blog.csdn.net/m582445672/article/details/7731565 实践: http://shiyanjun.cn/archives/584.html ...
- string和stringbuffer stringbuilder的快速理解。
这三个对象都可操作字符串,区别string定义的变量除非重新赋值,否则是不可改变的.调用string的方法不会改变,但是其他两个有对象的方法可改变,比如apend的方法,后两个区别一个是线程安全不安全 ...
- iOS中@class #import #include 简介
[转载自:http://blog.csdn.net/chengwuli125/article/details/9705315] 一.解析 很多刚开始学习iOS开发的同学可能在看别人的代码 ...
- Android 模仿微信启动动画(转)
本文内容 环境 项目结构 演示微信启动动画 本文演示微信启动动画.请点击此处下载,自行调试. 顺便抱怨一下,实践性(与研究性质的相对)技术博的“七宗罪”: 第一宗罪,错字连篇,逻辑不清: 第二宗罪,文 ...
- Android(java)学习笔记217:开发一个多界面的应用程序之清单文件
清单文件的重要参数: <intent-filter> 代表的应用程序的入口界面 <action android:name=&quo ...
- javaScript特效
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- 洛谷 P1273 有线电视网(dp)
/* 想了半天没想出状态 自己还是太弱了 QAQ 题目问的是最多供给多少户 一般想法是把这个值定义为状态量 没想出来QAQ....看了看题解的状态 很机智.... f[i][j]表示i的子树 选了j个 ...
- 排名最重要的三个优化阶段分析 --------------------->>转至(卧牛SEO/武汉SEO http://blog.sina.com.cn/zhengkangseo )
网站排名,不是一两天能够决定的.要想取得好的排名,得分时间分阶段地做排名,网站优化分前期,中期,后期,怎么来区别不同的阶段该用怎样的优化手段.今晚SEO研究中心创始人Moon老师分享:排名最重要的三个 ...
- python面对对象编程----------7:callable(类调用)与context(上下文)
一:callables callables使类实例能够像函数一样被调用 如果类需要一个函数型接口这时用callable,最好继承自abc.Callable,这样有些检查机制并且一看就知道此类的目的是c ...