地鼠的困境

Description

地鼠家族面临着一个新的威胁——猎食者。
  地鼠家族一共有N个地鼠和M个鼠洞,每个都位于不同的(x, y)坐标中。假如有地鼠在发觉危险以后s秒内都没有回到鼠洞里的话,就可能成为老鹰的食物。当然了,一个鼠洞只能拯救一只地鼠的命运,所有地鼠都以相等的速度v移动。地鼠家族需要设计一种策略,使得老鹰来时,易受攻击的地鼠数量最少。

Input

本题有多组数据。第1行为测试数据组数T(T<=50)。
对于每组数据,第一行4个整数n, m, s和v(n, m <= 100)。以后n行为地鼠的坐标,以后m行为鼠洞的坐标。距离的单位是m,时间的单位是s,速度的单位是m/s。

Output

对于每组数据输出一行,为易受攻击的地鼠的数量。

Sample Input

1
2 2 5 10
1.0 1.0
2.0 2.0
100.0 100.0
20.0 20.0

Sample Output

1

解题思路

这题就是最大匹配
枚举两两的洞和鼹鼠判断,可以在规定时间回到洞里的就连边,二分图求最大匹配。

注:最后求的是 易受攻击的地鼠数量 所以要用n-最大匹配(注意:不是最大独立集)

AC代码

#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
double xx,yy,x[105],y[105];
long long n,m,s,v,T,tot,answer,head[105],cover[105],father[105];
long long dx[8]={-1,-2,-2,-1,1,2,2,1};
long long dy[8]={-2,-1,1,2,-2,-1,1,2};
struct node//结构体
{long long to,next;
}a[1000005];
void add(long long x,long long y)//邻接表
{a[++tot]=(node){y,head[x]};head[x]=tot;
}
bool dfs(long long x)//dfs(匈牙利算法)
{if(x==0)return true;for(long long i=head[x];i;i=a[i].next)//枚举相连的边if(cover[a[i].to]==0)//判断{cover[a[i].to]=1;//标记long long sum=father[a[i].to];//记录father[a[i].to]=x;if(sum==0||dfs(sum))return true;father[a[i].to]=sum;//回溯}return false;
}
int main()
{scanf("%lld",&T);while(T--){tot=answer=0;memset(head,0,sizeof(head));memset(father,0,sizeof(father));scanf("%lld%lld%lld%lld",&n,&m,&s,&v);for(long long i=1;i<=n;i++)scanf("%lf%lf",&x[i],&y[i]);for(long long i=1;i<=m;i++)//枚举每个鼠洞{scanf("%lf%lf",&xx,&yy);for(int j=1;j<=n;j++)//枚举每个老鼠if(1.0*v*s>=sqrt((xx-x[j])*(xx-x[j])+(yy-y[j])*(yy-y[j])))//如果老鼠可以跑回鼠洞就连边add(j,i);}for(long long i=1;i<=n;i++)//匈牙利算法{memset(cover,0,sizeof(cover));dfs(i);}for(long long i=1;i<=n;i++)//匈牙利if(father[i]!=0)answer++;printf("%lld\n",n-answer);//输出n-最大匹配}return 0;
}

谢谢

地鼠的困境(最大匹配)相关推荐

  1. ssl1333-地鼠的困境【二分图,最大匹配,图论】

    正题 大意 有n个地鼠有m个地洞,每只地鼠的速度都是v.若不在s秒之内回到地洞就会狗带,每只地洞只能躲一只地鼠,求能活下来多少只 代码 #include<cstdio> #include& ...

  2. 伦理困境:人工智能浪潮与“AI威胁论”之争

    首先,何为伦理? 2018年1月份的<科学与社会>报刊中有如下阐述: 伦理一词,英文为ethics,一词源自于希腊文的"ethos",其意义与拉丁文"more ...

  3. 正向最大匹配 和逆向最大匹配对比比较

    正向最大匹配法 &逆向最大匹配法 原理对比 下面介绍的分词算法中最简单的正向最大匹配和反向最大匹配. 这种两种方法都是机械分词方法,它是按照一定的策略将待分析的汉字串与一个"充分大的 ...

  4. 自动泊车技术短暂困境,前景可期

    自动泊车技术短暂困境,前景可期 倒车,是几乎所有驾驶员都会遇到的难题,尤其是在北京这种车多但停车空间有限的大城市,倒车不仅是对驾驶技术的一大考验,严重的甚至可能引发拥堵或交通事故,而对驾车新手而言,倒 ...

  5. 2.4g 无线键鼠对码软件_富德iK8900无线键鼠套装评测:静音纤薄

    作为世界三大无线键鼠品牌之一的富德科技,自2008年成立以来就专注于无线键鼠领域.凭借扎实的品质.出色的做工以及时尚潮流的外观设计,获得了众多年轻消费者的青睐.更与时下较为流行的动漫IP合作,推出联名 ...

  6. seg:NLP之正向最大匹配分词

    已迁移到我新博客,阅读体验更佳seg:NLP之正向最大匹配分词 完整代码实现放在我的github上:click me 一.任务要求 实现一个基于词典与规则的汉语自动分词系统. 二.技术路线 采用正向最 ...

  7. 可穿戴医疗设备火爆背后的困境

    目前在电商平台搜索可穿戴手表.手环等可穿戴产品,品牌不下百种.市场调研机构IDC发布的最新报告显示,今年第一季度全球可穿戴设备发货量达到1140万部,同比增长200%,连续第八个季度实现增长.但是目前 ...

  8. 忍不住要发感慨,我的这个罗技鼠真好用...

    终于忍不住了,把台式机上的罗技鼠换到了本本上,我这个当初花了100元买的罗技鼠真的是好用,至少对我而言如是.总感觉我的那个极动鲨有些厚重,虽然他也一样好用,但同这个罗技鼠相比,却多了分厚重,少了些灵动 ...

  9. 区块链的去中心化VS传统互联网的去中心化:技术与治理的双重困境

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 区块链的去中心化VS传统互联网的去中心化:技术与治理的双重困境11 主要观点: 1.传统互联网经典的去中心化项目BitT ...

最新文章

  1. 某34岁程序员哀叹:北京有一套房和160万现金,但500万的股票缩水到70万,上周刚失业,今天跟女友分手,心态崩了!...
  2. php正则匹配js中变量_PHP正则表达式核心技术 第4节 php查找匹配函数使用心得
  3. ML之LiR之PLiR:惩罚线性回归PLiR算法简介、分类、代码实现之详细攻略
  4. 尝试自动重定向的次数太多_GoRod:基于DP协议的Web自动化和数据抓取工具
  5. Thrift使用指南
  6. 一周要闻:为什么从百度离职,程序员五件事.......
  7. 隐马尔可夫模型 HMM 原理及实现
  8. python-封装pymysql的思路步骤
  9. 谁将称霸跨平台应用市场?
  10. 百分点舆情洞察系统解决方案
  11. Java语言基础:常量和变量
  12. 浅谈压缩感知(八):两篇科普文章
  13. [写轮眼]QQ服务调校
  14. H264里面描述符的意思--------x264学习笔记ByMK
  15. lazysnapping
  16. 【转】阿里云主机购买使用教程
  17. u盘的大小在计算机无法显示,U盘格式化后插入电脑打不开,不显示U盘大小怎么解决?...
  18. Zero-shot Learning / One-shot Learning
  19. CRX-VF低温探针台安装实验室安装准备条件
  20. 数组<小罗爱c语言>

热门文章

  1. 在低容错业务场景下落地微服务的实践经验
  2. 为什么说“ CPS联盟营销 ” 是性价比最高的推广方式?
  3. 天地超云高温一体机的耐热秘诀
  4. linux克隆tf卡中的内容,TF/SD内存卡数据克隆怎么做教程
  5. 计算机专业助我成长作文600,电脑伴我成长作文
  6. html5与ccs网页制作,HTML5CCS3(1) 网页的构造块
  7. 使用scikit-image feature计算图像特征与常见特征示例
  8. 简练软考知识点整理-排列活动顺序
  9. CIFS协议入门指南:快速部署文件共享服务器
  10. Office 365最新2022新版本