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)之间连一条边, ...
随机推荐
- bzoj2729 [HNOI2012]排队
组合数学,推一下式子,并不难推. java代码 import java.io.*; import java.math.BigInteger; import java.util.*; public cl ...
- spring使用elasticsearch 5.x
elasticsearch客户端选择 这里使用transport建立elasticsearch客户端 applicationContext.xml配置,属性可以采用读取属性文件的方式.参考类Prope ...
- 如何清除PL/SQL中的缓存
每次查询前清空缓存10g以上:alter system flush buffer_cache;9i:ALTER SESSION SET EVENTS 'immediate trace name flu ...
- 【笔记】jquery hover的用法
hover函数格式: $("A").hover(function(){ //当鼠标移入的时候执行第一个函数 },function(){ //当鼠标移出的时候执行第二个函数 }) * ...
- zigbee学习之路(三):按键的控制
一.前言 通过前一次的实验,相信大家都已经对cc2530程序的编写有了一定的认识,这次我们来操作和实验的是cc2530上的按键模块. 二.原理分析 我们先来看一下按键的原理图: 根据原理图我们可以得出 ...
- 右值引用、move与move constructor
http://blog.chinaunix.net/uid-20726254-id-3486721.htm 这个绝对是新增的top特性,篇幅非常多.看着就有点费劲,总结更费劲. 原来的标准当中,参数与 ...
- Eclipse开发过程中个VM Arguments的设置
Eclipse开发过程中个VM Arguments的设置 1:jre中的Default VM Arguments: -Xms256M -Xmx640M -XX:PermSize=256m -XX:Ma ...
- Bootstrap_按钮工具栏
单个按钮在Web页面中的运用有时候并不能满足我们的业务需求,常常会看到将多个按钮组合在一起使用,比如富文本编辑器里的一组小图标按钮等. Bootstrap框架为大家提供了按钮组组件. <div ...
- uploadify springMVC
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- javascript实现动态侧边栏
总的来说就是利用 鼠标悬停onmouseover 和 鼠标移除onmouseout 这两个时间来完成的. 首先是HTML 结构 <body> <div id="div ...