POJ2536 二分图 匈牙利算法
2011-08-26 15:02
323 查看
还是二分图。
个人觉得如果把二分图的匈牙利算法学会了。
这些应用都是挺简单的。
#include<stdio.h>
#include<memory.h>
#include<math.h>
int n,m,s,v;
const int N=105;
int link
;
bool visit
;
struct
{
double x,y;
}h
,g
;
bool mat
;
bool dfs(int u)
{
for(int i=1;i<=m;i++)
{
if(!visit[i]&&mat[u][i])
{
visit[i]=true;
if(link[i]==-1||dfs(link[i]))
{
link[i]=u;
return true;
}
}
}
return false;
}
int main()
{
while(scanf("%d%d%d%d",&n,&m,&s,&v)!=EOF)
{
memset(mat,0,sizeof(mat));
for(int i=1;i<=n;i++)
{
scanf("%lf%lf",&g[i].x,&g[i].y);
}
for(int i=1;i<=m;i++)
{
scanf("%lf%lf",&h[i].x,&h[i].y);
}
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
if(((h[j].y-g[i].y)*(h[j].y-g[i].y)+(h[j].x-g[i].x)*(h[j].x-g[i].x))/double(v*v)<double(s*s))
{
mat[i][j]=true;
}
}
memset(link,-1,sizeof(link));
int ans=0;
for(int i=1;i<=n;i++)
{
memset(visit,0,sizeof(visit));
if(dfs(i))
ans++;
}
printf("%d\n",n-ans);
}
return 0;
}
个人觉得如果把二分图的匈牙利算法学会了。
这些应用都是挺简单的。
#include<stdio.h>
#include<memory.h>
#include<math.h>
int n,m,s,v;
const int N=105;
int link
;
bool visit
;
struct
{
double x,y;
}h
,g
;
bool mat
;
bool dfs(int u)
{
for(int i=1;i<=m;i++)
{
if(!visit[i]&&mat[u][i])
{
visit[i]=true;
if(link[i]==-1||dfs(link[i]))
{
link[i]=u;
return true;
}
}
}
return false;
}
int main()
{
while(scanf("%d%d%d%d",&n,&m,&s,&v)!=EOF)
{
memset(mat,0,sizeof(mat));
for(int i=1;i<=n;i++)
{
scanf("%lf%lf",&g[i].x,&g[i].y);
}
for(int i=1;i<=m;i++)
{
scanf("%lf%lf",&h[i].x,&h[i].y);
}
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
if(((h[j].y-g[i].y)*(h[j].y-g[i].y)+(h[j].x-g[i].x)*(h[j].x-g[i].x))/double(v*v)<double(s*s))
{
mat[i][j]=true;
}
}
memset(link,-1,sizeof(link));
int ans=0;
for(int i=1;i<=n;i++)
{
memset(visit,0,sizeof(visit));
if(dfs(i))
ans++;
}
printf("%d\n",n-ans);
}
return 0;
}
相关文章推荐
- POJ 1469,1274,2239,2536,2584,2446二分图的匈牙利算法(裸)
- 【二分图最大匹配】【匈牙利算法】poj1469 COURSES && poj2446 Chessboard
- POJ-2060-Taxi Cab Scheme 二分图匈牙利算法 裸题
- POJ1274 The Perfect Stall [二分图最大匹配 匈牙利算法]
- poj 1274 最大流或二分图,匈牙利算法
- 二分图(bfs+匈牙利算法) POJ 1469 course
- 【二分图|最大匹配】POJ-3041 Asteroids(匈牙利算法dfs、bfs版)
- POJ 1486 Sorting Slides 二分图关键边 匈牙利算法
- 二分图最大匹配(匈牙利算法) POJ 3041 Asteroids
- poj 2536 Gopher II 二分匹配应用 匈牙利算法
- poj 3894 System Engineer (二分图最大匹配--匈牙利算法)
- poj3041——Asteroids(二分图,匈牙利算法)
- POJ 1274 The Perfect Stall (二分图最大匹配入门题,匈牙利算法)
- POJ-3041 匈牙利算法 二分图最大匹配
- poj 2446 二分图最大匹配 匈牙利算法
- poj 1469 COURSES 二分图最大匹配 匈牙利算法
- poj 3041 Asteroids【二分图】【匈牙利算法】
- poj - 3041 Asteroids (二分图最大匹配+匈牙利算法)
- poj 3041 Asteroids (匈牙利算法---二分图最大匹配)
- POJ 1463 Strategic game (二分图最小覆盖点(匈牙利算法) 或 树形DP)