vijos1212 Way Selection(二分图最大匹配)
来源:互联网 发布:锐捷 mac过滤 编辑:程序博客网 时间:2024/05/20 05:22
建二分图,然后去跑匈牙利算法就好了。
#include <bits/stdc++.h>using namespace std;#define ll long long#define inf 0x3f3f3f3f#define N 1010inline int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar(); return x*f;}int n,m,t,bf[N],ans=0,h[N],num=0;bool f[N];struct point{ double x,y;}p[N];struct edge{ int to,next;}data[N*N];bool find(int x){ for(int i=h[x];i;i=data[i].next){ int y=data[i].to;if(f[y]) continue; f[y]=1;if(!bf[y]||find(bf[y])){bf[y]=x;return 1;} }}int main(){// freopen("a.in","r",stdin); while(~scanf("%d%d%d",&n,&m,&t)){ num=0;memset(h,0,sizeof(h)); for(int i=1;i<=m;++i) scanf("%lf%lf",&p[i].x,&p[i].y); for(int i=1;i<=n;++i){ double x,y,v;scanf("%lf%lf%lf",&x,&y,&v); for(int j=1;j<=m;++j){ if((x-p[j].x)*(x-p[j].x)+(y-p[j].y)*(y-p[j].y)>v*t*v*t) continue; data[++num].to=j;data[num].next=h[i];h[i]=num; } } for(int i=1;i<=n;++i){ memset(f,0,sizeof(f)); if(find(i)) ans++; } printf("%d\n",ans); } return 0;}
阅读全文
0 0
- vijos1212 Way Selection(二分图最大匹配)
- 【最大匹配】Way Selection Vijos1212
- vijos 1212 way selection 二分图匹配
- 二分图(最大匹配)
- 二分图最大匹配
- 二分图最大匹配 。
- 二分图最大匹配
- 二分图最大匹配
- 二分图最大匹配
- 二分图最大匹配
- 二分图 最大匹配
- 二分图最大匹配
- 二分图最大匹配
- 二分图最大匹配
- 二分图最大匹配
- 二分图最大匹配
- 二分图最大匹配
- 二分图最大匹配
- spark读写压缩文件API使用详解
- vue常见问题(一)无法识别$http
- 解决问题:delphi窗口中onkeydown设置了快捷键却没反应
- HashMap理解1
- Java核心技术:第四章 对象与类
- vijos1212 Way Selection(二分图最大匹配)
- Webpack(一)前端项目打包配置
- 使用SQL SERVER备份命令备份数据库
- ArcGIS Runtime WPF SDK (4)绘制,编辑Graphic
- 做程序员,只盯着自己写了几万行那就跑偏啦!
- T
- superfish插件基本使用
- IP语音的服务质量(QoS)、带宽需求和安全机制
- openfire4.1.5服务器部署及其异常处理