题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2389

思路:纯裸的一个最大匹配题,不过悲摧的是以前一直用的dfs版一直过不了,TLE无数次啊,然后改成bfs就过了。

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
#include<cmath>
#include<queue>
using namespace std;
#define MAXN 3333
vector<int>map[MAXN];
int ly[MAXN],lx[MAXN];
int distx[MAXN],disty[MAXN];
int n,m;
struct Node {
int x,y,s;
} p[MAXN];
struct Point {
int x,y;
} q[MAXN]; bool bfs()
{
bool flag=false;
memset(distx,,(n+)*sizeof(int));
memset(disty,,(n+)*sizeof(int));
queue<int>Q;
for(int i=; i<=n; i++) {
if(lx[i]==-)Q.push(i);
}
while(!Q.empty()) {
int u=Q.front();
Q.pop();
for(int i=; i<map[u].size(); i++) {
int v=map[u][i];
if(disty[v]==) {
disty[v]=distx[u]+;
if(ly[v]==-)flag=true;
else {
distx[ly[v]]=disty[v]+;
Q.push(ly[v]);
}
}
}
}
return flag;
} int dfs(int u)
{
for(int i=; i<map[u].size(); i++) {
int v=map[u][i];
if(disty[v]==distx[u]+) {
disty[v]=;
if(ly[v]==-||dfs(ly[v])) {
ly[v]=u;
lx[u]=v;
return ;
}
}
}
return ;
} int MaxMatch()
{
int res=;
memset(lx,-,(n+)*sizeof(lx[]));
memset(ly,-,(n+)*sizeof(ly[]));
while(bfs()) {
for(int i=; i<=n; i++) {
if(lx[i]==-)res+=dfs(i);
}
}
return res;
} int main()
{
// freopen("1.txt","r",stdin);
int _case,time,t=;
scanf("%d",&_case);
while(_case--) {
scanf("%d%d",&time,&n);
for(int i=; i<=n; i++)map[i].clear();
for(int i=; i<=n; i++) {
scanf("%d%d%d",&p[i].x,&p[i].y,&p[i].s);
}
scanf("%d",&m);
for(int i=; i<=m; i++) {
scanf("%d%d",&q[i].x,&q[i].y);
}
for(int i=; i<=n; i++) {
for(int j=; j<=m; j++) {
double xx=(p[i].x-q[j].x)*(p[i].x-q[j].x)*1.0;
double yy=(p[i].y-q[j].y)*(p[i].y-q[j].y)*1.0;
double dd=sqrt(xx+yy);
if(dd<=1.0*time*p[i].s)map[i].push_back(j);
}
}
int ans=MaxMatch();
printf("Scenario #%d:\n%d\n",t++,ans);
puts("");
}
return ;
}

hdu 2389(最大匹配bfs版)的更多相关文章

  1. HDU 2389 Rain on your Parade / HUST 1164 4 Rain on your Parade(二分图的最大匹配)

    HDU 2389 Rain on your Parade / HUST 1164 4 Rain on your Parade(二分图的最大匹配) Description You're giving a ...

  2. HDU 2389 ——Rain on your Parade——————【Hopcroft-Karp求最大匹配、sqrt(n)*e复杂度】

    Rain on your Parade Time Limit:3000MS     Memory Limit:165535KB     64bit IO Format:%I64d & %I64 ...

  3. HDU 2389 Rain on your Parade 最大匹配(模板题)【HK算法】

    <题目链接> 题目大意:有m个宾客,n把雨伞,预计时间t后将会下大雨,告诉你每个宾客的位置和速度,每把雨伞的位置,问你最多几个宾客能够拿到伞. 解题分析: 本题就是要我们求人与伞之间的最大 ...

  4. HDU 4607.Park Visit-树的直径(BFS版)+结论公式(乱推公式)-备忘(加油!)

    Park Visit Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  5. (匹配 Hopcroft-Karp算法)Rain on your Parade -- Hdu --2389

    链接: http://acm.hdu.edu.cn/showproblem.php?pid=2389 不能用匈牙利,会TEL的,用Hopcroft-Karp Hopcroft-Karp课件 以前是寻找 ...

  6. HDU 2853 最大匹配&KM模板

    http://acm.hdu.edu.cn/showproblem.php?pid=2853 这道题初看了没有思路,一直想的用网络流如何解决 参考了潘大神牌题解才懂的 最大匹配问题KM 还需要一些技巧 ...

  7. HDU(4528),BFS,2013腾讯编程马拉松初赛第五场(3月25日)

    题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=4528 小明系列故事——捉迷藏 Time Limit: 500/200 MS (Java/O ...

  8. hdu 1072 Nightmare (bfs+优先队列)

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=1072 Description Ignatius had a nightmare last night. H ...

  9. HDU 3533 Escape bfs 难度:1

    http://acm.hdu.edu.cn/showproblem.php?pid=3533 一道普通的bfs,但是由于代码实现出了bug还是拖了很久甚至对拍了 需要注意的是: 1.人不能经过炮台 2 ...

随机推荐

  1. HTTP上传文件探究

    通常情况下,我们想在网页上上传一个文件的时候,会采用<input type="file">标签,但是你有没有想过,为什么通过这样一个标签,服务器端就能获取到文件数据呢? ...

  2. python生成带参数二维码

    #coding:utf8 import urllib2 import urllib import json import string import random class WebChat(obje ...

  3. Labview实现脉波调制( PAM )

    Labview实现脉波调制( PAM ) 根据定义为脉冲振幅调制 生成一个正弦信号,得到其幅值输入给一个方波信号的幅值 这个等价于一个方波信号和一个正弦信号相乘 得到的PAM信号通过观察其频率可以发现 ...

  4. disable_irq()与disable_irq_nosync()区别

    disable_irq关闭中断并等待中断处理完后返回, 而disable_irq_nosync立即返回.

  5. 原生javascript开发仿微信打飞机小游戏

    今天闲来无事,于是就打算教一个初学javascript的女童鞋写点东西,因此为了兼顾趣味性与简易程度,果断想到了微信的打飞机小游戏.. 本来想用html5做的,但是毕竟人家才初学,连jquery都还不 ...

  6. linux系统非ROOT用户80端口不能启动tomcat问题的变通办法——通过Iptables端口转发

    2010-07-17 13:21:42 org.apache.tomcat.util.digester.SetPropertiesRule begin 警告: [SetPropertiesRule]{ ...

  7. poi实现Excel比较

    http://stackoverflow.com/questions/866346/easiest-way-to-compare-two-excel-files-in-java http://stac ...

  8. SSRF攻击实例解析

    ssrf攻击概述 很多web应用都提供了从其他的服务器上获取数据的功能.使用用户指定的URL,web应用可以获取图片,下载文件,读取文件内容等.这个功能如果被恶意使用,可以利用存在缺陷的web应用作为 ...

  9. 打造XP下可运行的微型PE文件

    前几天和朋友交流技术,提到手工打造微型PE文件,他说现在网上流传的大部分版本在XP SP3下都不能运行,于是心血来潮,拍着胸脯说:“你放心,忙完了帮你做一个.”后来花了半天时间,终于打造出一个XP下可 ...

  10. 两台机器间libevent通信:No route to host问题

    最近学习libevent库,遂在两台虚拟机间模拟通信,程序没逻辑错误,但客户端总是提示No route to host问题,想到可能是linux的防火墙问题导致的,于是关掉防火墙: Ubuntu系统防 ...