不错的思想

 /*
大致题意: 用n个导弹发射塔攻击m个目标。每个发射架在某个时刻只能为
一颗导弹服务,发射一颗导弹需要准备t1的时间,一颗导弹从发
射到击中目标的时间与目标到发射架的距离有关。每颗导弹发
射完成之后发射架需要t2的时间进入下个发射流程。现在问
最少需要多少时间可以击毁所有m个目标。 大致思路:
二分枚举这个最大时间的最小值,每次按照这个枚举的时间构出
二分图,求最大匹配来判定枚举值是否符合要求。 注意单位,T1要除于60转化成分的 */ #include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
#include<math.h>
#include<vector>
using namespace std;
const double eps=1e-;
const int MAXN=;
int linker[MAXN];
bool used[MAXN];
vector<int>g[];
int uN;
bool dfs(int u)
{
for(int i=;i<g[u].size();i++)
{
if(!used[g[u][i]])
{
used[g[u][i]]=true;
if(linker[g[u][i]]==-||dfs(linker[g[u][i]]))
{
linker[g[u][i]]=u;
return true;
}
}
}
return false;
}
int hungary()
{
int u;
int res=;
memset(linker,-,sizeof(linker));
for(u=;u<uN;u++)
{
memset(used,false,sizeof(used));
if(dfs(u))res++;
}
return res;
} int N,M;
double T1,T2,V;
struct Node
{
int x,y;
};
Node node1[],node2[];
double d[][];
double tt[MAXN][]; double dis(Node a,Node b)
{
return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));
} void init()
{
for(int i=;i<N;i++)
for(int j=;j<M;j++)
d[i][j]=dis(node1[i],node2[j]);
for(int k=;k<M;k++)
for(int i=;i<N;i++)
for(int j=;j<M;j++)
{
tt[i*M+k][j]=k*T2+(k+)*T1+d[i][j]/V;
}
uN=M;
} double solve()
{
double l=;
double r=200000000000.0;
double mid;
while(r-l>=eps)
{
mid=(l+r)/;
for(int i=;i<M;i++)g[i].clear();
for(int i=;i<M*N;i++)
for(int j=;j<M;j++)
{
if(tt[i][j]<=mid)g[j].push_back(i);
}
if(hungary()==M)
{
r=mid;
}
else l=mid;
}
printf("%.6lf\n",r);
}
int main()
{
//freopen("in.txt","r",stdin);
//freopen("out.txt","w",stdout);
while(scanf("%d%d%lf%lf%lf",&N,&M,&T1,&T2,&V)!=EOF)
{
T1/=;//这个注意,没有除一直得不到答案,纠结
for(int i=;i<M;i++)scanf("%d%d",&node2[i].x,&node2[i].y);
for(int i=;i<N;i++)scanf("%d%d",&node1[i].x,&node1[i].y);
init();
solve();
}
return ;
}

zoj 3460 二分+二分图匹配的更多相关文章

  1. BZOJ_4443_[Scoi2015]小凸玩矩阵_二分+二分图匹配

    BZOJ_4443_[Scoi2015]小凸玩矩阵_二分+二分图匹配 Description 小凸和小方是好朋友,小方给小凸一个N*M(N<=M)的矩阵A,要求小秃从其中选出N个数,其中任意两个 ...

  2. POJ 1274 The Perfect Stall || POJ 1469 COURSES(zoj 1140)二分图匹配

    两题二分图匹配的题: 1.一个农民有n头牛和m个畜栏,对于每个畜栏,每头牛有不同喜好,有的想去,有的不想,对于给定的喜好表,你需要求出最大可以满足多少头牛的需求. 2.给你学生数和课程数,以及学生上的 ...

  3. zoj 3370(二分+二分图染色)

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=3912 思路:二分覆盖直径,然后判断是否有冲突(即距离小于等于直径的不 ...

  4. 【洛谷P4251】[SCOI2015]小凸玩矩阵(二分+二分图匹配)

    洛谷 题意: 给出一个\(n*m\)的矩阵\(A\).现要从中选出\(n\)个数,任意两个数不能在同一行或者同一列. 现在问选出的\(n\)个数中第\(k\)大的数的最小值是多少. 思路: 显然二分一 ...

  5. POJ 2289 Jamie's Contact Groups / UVA 1345 Jamie's Contact Groups / ZOJ 2399 Jamie's Contact Groups / HDU 1699 Jamie's Contact Groups / SCU 1996 Jamie's Contact Groups (二分,二分图匹配)

    POJ 2289 Jamie's Contact Groups / UVA 1345 Jamie's Contact Groups / ZOJ 2399 Jamie's Contact Groups ...

  6. 洛谷P4589 [TJOI2018]智力竞赛(二分答案 二分图匹配)

    题意 题目链接 给出一个带权有向图,选出n + 1n+1条链,问能否全部点覆盖,如果不能,问不能覆盖的点权最小值最大是多少 Sol TJOI怎么净出板子题 二分答案之后直接二分图匹配check一下. ...

  7. kattis Programming Tutors 给游客与导游匹配(二分+二分图)

    题目来源:https://vjudge.net/problem/Kattis-programmingtutors 题意: 有n个游客,n个导游,给出他们的坐标,问你怎么匹配可以使他们最大距离最小 题解 ...

  8. 【CF981F】Round Marriage(二分答案,二分图匹配,Hall定理)

    [CF981F]Round Marriage(二分答案,二分图匹配,Hall定理) 题面 CF 洛谷 题解 很明显需要二分. 二分之后考虑如果判定是否存在完备匹配,考虑\(Hall\)定理. 那么如果 ...

  9. 【BZOJ4443】小凸玩矩阵(二分答案,二分图匹配)

    [BZOJ4443]小凸玩矩阵(二分答案,二分图匹配) 题面 BZOJ Description 小凸和小方是好朋友,小方给小凸一个N*M(N<=M)的矩阵A,要求小秃从其中选出N个数,其中任意两 ...

随机推荐

  1. 深入了解C指针

      前言:复杂类型说明 要了解指针,多多少少会出现一些比较复杂的类型,所以我先介绍一下如何完全理解一个复杂类型,要理解复杂类型其实很简单,一个类型里会出现很多运算符,他们也像普通的表达式一样,有优先级 ...

  2. SQL记录-PLSQL循环

    PL/SQL循环   可能有一种情况,当需要执行的代码块的几个多次.在一般情况下,语句顺序执行:一个函数的第一条语句,首先执行,然后是第二个...等等. 编程语言提供了各种控制结构,允许更多复杂的执行 ...

  3. H5 Day2 练习

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. Flex 程序执行顺序!

    Flex 执行加载过程会有几个概念:preloader, SystemManager, Flex Application! flex 界面初始化时,看到的 Loading 加载条,那是 flex 自动 ...

  5. 第9月第9天 CTFramesetterCreateWithAttributedString

    1. NSString *text = @"This\nis\nsome\nmulti-line\nsample\ntext."; UIFont *uiFont = [UIFont ...

  6. Casper带有4个内建记录级别

    默认情况下,CasperJS会在‘error’级别过滤日志.所以如果你开始记录日志后没有看到任何东西,可能就是这个原因.为确保显示日志输出,我把它设置为‘debug’.而且我关闭了‘verbose’选 ...

  7. redis,nodejs,php,pub/sub 实战: 微信语音识别

    2015年5月22日 20:20:20 星期五 效果: 这边对微信说话,  浏览器端及时显示语音识别的文字 注意: 在连接socket.io时, 按下浏览器f12, 如果一直有请求不断的刷, 说明so ...

  8. 读写分离MYSQL类

    2014年4月27日 12:34:08 概述: 1. 根据sql语句判断是连接读库还是写库 2. 链式调用$this->where()->get() 3. 不同的主机对应不同的实例, 不再 ...

  9. cas:覆盖安装

    1.首先到github上下载最新的模板代码 https://github.com/apereo/cas-overlay-template 下载完成后,导入该工程. 2.编译打包 cd cas-over ...

  10. thymeleaf:访问静态方法

    <p class="left tel" th:if="${#strings.startsWith(T(net.common.util.tool.common.Req ...