hdu_2389 Rain on your Parade 匈牙利算法的bfs实现
来源:互联网 发布:店铺数据分析怎么写 编辑:程序博客网 时间:2024/05/16 05:28
#include<cstdio>#include<cstring>#include<algorithm>#include<queue>using namespace std;#define N 3005int limit,n,m;struct node{int x,y,speed;}s1[N],s2[N];int mx[N],my[N],mk[N];int pred[N];queue<int> p;bool judge(int u,int v){if(((s1[u].x-s2[v].x)*(s1[u].x-s2[v].x)+(s1[u].y-s2[v].y)*(s1[u].y-s2[v].y))<=(limit*limit*s1[u].speed*s1[u].speed)) return true;return false;}int hungary(){while(!p.empty()) p.pop();memset(mx,-1,sizeof(mx));memset(my,-1,sizeof(my));memset(mk,-1,sizeof(mk));int cnt=0;for(int i=0;i<n;i++){if(mx[i]!=-1) continue;pred[i]=-1;while(!p.empty()) p.pop();p.push(i);bool flag=0;while(!p.empty()&&!flag){int u=p.front();p.pop();for(int v=0;v<m&&!flag;v++){if(mk[v]!=i&&judge(u,v)){mk[v]=i;p.push(my[v]);if(my[v]>=0){pred[my[v]]=u;}else{flag=1;int x=u,y=v;while(x!=-1){int temp=mx[x];mx[x]=y;my[y]=x;x=pred[x];y=temp;}}}}}if(mx[i]!=-1) cnt++;}return cnt;}int main(){int t,f=1;scanf("%d",&t);while(t--){scanf("%d%d",&limit,&n);for(int i=0;i<n;i++){scanf("%d%d%d",&s1[i].x,&s1[i].y,&s1[i].speed);}scanf("%d",&m);for(int i=0;i<m;i++){scanf("%d%d",&s2[i].x,&s2[i].y);}printf("Scenario #%d:\n%d\n\n",f++,hungary());}return 0;}
刚开始是dfs写匈牙利算法果断的超时。。。。。。
就学习了下bfs写法,又果断的过了。。。。还有HK算法同样可以解决这题。
- hdu_2389 Rain on your Parade 匈牙利算法的bfs实现
- Rain on your Parade
- Rain on your Parade HDU
- Rain on your Parade HDU
- hdu 2389 Rain on your Parade 二分匹配 HK算法
- 【二分匹配】 HDU 2389 Rain on your Parade HK算法
- hdu2389 Rain on your Parade(二分匹配hopcroft-carp算法)
- hdu2389 Rain on your Parade--HK算法 & 最大匹配数
- HDU 2389 Rain on your Parade(HK算法)
- HDU2389 Rain on your Parade(HK算法)
- HDU2389 Rain on your Parade 二分匹配 Hopcroft-Carp的算法+模版
- HDU 2389 Rain on your Parade (二分图匹配(Hopcroft-Carp的算法模板))
- HDU 2389 Rain on your Parade //MAXMATCH
- Hdu 2389 Rain on your Parade
- hdu 2389 Rain on your Parade
- HDU 2389 Rain on your Parade
- hdoj 2389 Rain on your Parade 【HK】
- HDU 2389 Rain on your Parade
- magento 问题解决
- Java 读书笔记
- 5分钟搞定字节对齐问题
- google-chrome can not be run as root
- 自定义Wordpress的仪表盘
- hdu_2389 Rain on your Parade 匈牙利算法的bfs实现
- 刚交了50元加的VIP会员就不能下载
- VC+API模拟键盘按键(详解篇)
- 大概是电饭锅
- VC6.0操作XML电子表格2003
- PHP中 接收命令行参数(转)
- 模拟键盘API函数Keybd_event用法
- 续:一种让数值在指定范围内由小到大再变小的生成方法(固定时间内)
- 凯撒密码算法