北大OJ2536
2015-12-08 20:46
281 查看
#include<stdio.h> #include<stdlib.h> #include<memory.h> int n,m,s,v; int map[101][101]; bool vist[101]; int match[101]; struct gorphers { double x,y; }; gorphers A[101],B[101]; bool DFS(int u) { for(int v=1;v<=m;v++) { if(!vist[v]&&map[u][v]) { vist[v]=true; if(match[v]==0||DFS(match[v])) { match[v]=u; return true; } } } return false; } int main() { int i,j,sum; double d; while(scanf("%d%d%d%d",&n,&m,&s,&v)!=EOF) { d=v*s*v*s; for(i=1;i<=n;i++) scanf("%lf%lf",&A[i].x,&A[i].y); for(j=1;j<=m;j++) scanf("%lf%lf",&B[j].x,&B[j].y); memset(map,0,sizeof(map)); memset(match,0,sizeof(match)); for(i=1;i<=n;i++) { for(j=1;j<=m;j++) { if(((B[j].y-A[i].y)*(B[j].y-A[i].y)+(B[j].x-A[i].x)*(B[j].x-A[i].x))<=d) map[i][j]=1; } } sum=0; for(i=1;i<=n;i++) { memset(vist,false,sizeof(vist)); if(DFS(i)) sum++; } printf("%d\n",n-sum); } return 0; }
相关文章推荐
- 动易2006序列号破解算法公布
- Ruby实现的矩阵连乘算法
- C#插入法排序算法实例分析
- 超大数据量存储常用数据库分表分库算法总结
- C#数据结构与算法揭秘二
- C#冒泡法排序算法实例分析
- 算法练习之从String.indexOf的模拟实现开始
- C#算法之关于大牛生小牛的问题
- C#实现的算24点游戏算法实例分析
- c语言实现的带通配符匹配算法
- 浅析STL中的常用算法
- 算法之排列算法与组合算法详解
- C++实现一维向量旋转算法
- Ruby实现的合并排序算法
- C#折半插入排序算法实现方法
- 基于C++实现的各种内部排序算法汇总
- C++线性时间的排序算法分析
- C++实现汉诺塔算法经典实例
- PHP实现克鲁斯卡尔算法实例解析
- C#获取关键字附近文字算法实例