POJ 3041 Asteroids 匈牙利算法,最大流解法,行列为点 难度:1
http://poj.org/problem?id=3041
#include <cstdio>
#include <cstring>
#include <vector>
using namespace std;
int e[1004][1004];
bool vis[1004];
vector <int > G[1004];
int n,m;
int dfs(int s){
vis[s]=true;
if(s==n*2+1){//printf("dfs ok %d\n",s);
return 1;}
for(int i=0;i<G[s].size();i++){
int t=G[s][i];
if(!vis[t]&&e[s][t]>0){
if(dfs(t)>0){
e[s][t]-=1;
e[t][s]+=1;
//printf("dfs ok %d\n",s);
return 1;
}
}
}
// printf("dfs failed %d\n",s);
return 0;
}
void printe(){
for(int i=0;i<=2*n+1;i++){
for(int j=0;j<=2*n+1;j++){
if(e[i][j])printf("e[%d][%d]%d ",i,j,e[i][j]);
}
printf("\n");
}
printf("\n");
}
int maxflow(){
//printe();
int ans=0,f;
while(1){
f=dfs(0);
//printe();
memset(vis,0,sizeof(vis));
if(f==0)return ans;
ans+=f;
}
}
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++){e[0][i]=1;e[i][0]=0;G[0].push_back(i);}
for(int i=n+1;i<=2*n;i++){e[i][2*n+1]=1;e[2*n+1][i]=0;G[i].push_back(2*n+1);}
for(int i=0;i<m;i++){
int f,t;
scanf("%d%d",&f,&t);
e[f][n+t]=1;
e[n+t][f]=0;
G[f].push_back(n+t);
G[n+t].push_back(f);
}
int ans=maxflow();
printf("%d\n",ans);
return 0;
}
POJ 3041 Asteroids 匈牙利算法,最大流解法,行列为点 难度:1的更多相关文章
- POJ 3041 Asteroids | 匈牙利算法模板
emmmmm 让你敲个匈牙利 #include<cstdio> #include<algorithm> #include<cstring> #define N 51 ...
- POJ 3041.Asteroids-Hungary(匈牙利算法)
Asteroids Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 23963 Accepted: 12989 Descr ...
- POJ 3020 Antenna Placement 匈牙利算法,最大流解法 难度:1
http://poj.org/problem?id=3020 #include <cstdio> #include <cstring> #include <vector& ...
- 二分图最大匹配(匈牙利算法) POJ 3041 Asteroids
题目传送门 /* 题意:每次能消灭一行或一列的障碍物,要求最少的次数. 匈牙利算法:把行和列看做两个集合,当有障碍物连接时连一条边,问题转换为最小点覆盖数==二分图最大匹配数 趣味入门:http:// ...
- POJ 3041 Asteroids / UESTC 253 Asteroids(二分图最大匹配,最小点匹配)
POJ 3041 Asteroids / UESTC 253 Asteroids(二分图最大匹配,最小点匹配) Description Bessie wants to navigate her spa ...
- POJ 3041 Asteroids (对偶性,二分图匹配)
题目:POJ 3041 Asteroids http://poj.org/problem?id=3041 分析: 把位置下标看出一条边,这显然是一个二分图最小顶点覆盖的问题,Hungary就好. 挑战 ...
- poj 3041——Asteroids
poj 3041——Asteroids Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 22604 Accep ...
- poj - 3041 Asteroids (二分图最大匹配+匈牙利算法)
http://poj.org/problem?id=3041 在n*n的网格中有K颗小行星,小行星i的位置是(Ri,Ci),现在有一个强有力的武器能够用一发光速将一整行或一整列的小行星轰为灰烬,想要利 ...
- POJ 3041 Asteroids(二分图 && 匈牙利算法 && 最小点覆盖)
嗯... 题目链接:http://poj.org/problem?id=3041 这道题的思想比较奇特: 把x坐标.y坐标分别看成是二分图两边的点,如果(x,y)上有行星,则将(x,y)之间连一条边, ...
随机推荐
- ASP.NET MVC URL重写与优化(1)-使用Global路由表定制URL
ASP.NET MVC URL重写与优化(1)-使用Global路由表定制URL 引言--- 在现今搜索引擎制霸天下的时代,我们不得不做一些东西来讨好爬虫,进而提示网站的排名来博得一个看得过去的流量. ...
- java 笔试题 字符串旋转
package com.shb.java; /** * 取出第一个重复的字符 * @author shaobn * @date 2016-9-28 * @package_name com.shb.ja ...
- 《zw版·Halcon-delphi系列原创教程》 酸奶自动分类脚本(机器学习、人工智能)
<zw版·Halcon-delphi系列原创教程>酸奶自动分类脚本(机器学习.人工智能) Halcon强大的图像处理能力,令人往往会忽视其内核,是更加彪悍的机器学习.人工智能. ...
- 编译boost
参数意义: --build-dir: 编译的临时文件会放在builddir里(这样比较好管理,编译完就可以把它删除了) --stagedir: 存放编译后库文件的路径,默认是stage --bui ...
- javaWeb 使用 filter 处理 html 标签问题
1.web.xml代码 <filter> <filter-name>HtmlFilter</filter-name> <filter-class>de. ...
- MAC: Homebrew(代替yum)安装
安装 ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)" 最新方式请 ...
- YTU 2345: 后序遍历二叉树
原文链接:https://www.dreamwings.cn/ytu2345/2611.html 2345: 后序遍历二叉树 时间限制: 1 Sec 内存限制: 128 MB 提交: 3 解决: ...
- mysql数据库的一些用法
mysql数据库语句 1.replace into REPLACE INTO (列名1,列名2,列名3) VALUES ('值1','值2','值3'); # 如果数据库中不存在 ...
- Linux sticky bit 目录权限 rwt权限
[linux权限分为 user group others三组] 今天看到有个目录的权限是rwxrwxrwt 很惊讶这个t是什么,怎么不是x或者-呢?搜了下发现: 这个t代表是所谓的sticky bit ...
- sql 函数的理解
CAST (expression AS data_type) 用于数据的转化 isnull(@s+',','select years,months,') 判断(@s+',')是否为空,注意点,即使(@ ...