没什么好写的。写写这题吧

拆点,把一个防御塔拆成m个,表示第i次攻击。瞎yy就好啊

#include<cstdio>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<cmath>
using namespace std; struct node
{
int x,y,next;
}a[];int len,last[];
void ins(int x,int y)
{
len++;
a[len].x=x;a[len].y=y;
a[len].next=last[x];last[x]=len;
}
int tim,v[],match[];
bool findmuniu(int x)
{
for(int k=last[x];k;k=a[k].next)
{
int y=a[k].y;
if(v[y]!=tim)
{
v[y]=tim;
if(match[y]==||findmuniu(match[y])==true)
{
match[y]=x;
return true;
}
}
}
return false;
} int n,m;double T1,T2,V;
struct point{double x,y;}p[],q[];
double getdis(int i,int j)
{
return sqrt((p[i].x-q[j].x)*(p[i].x-q[j].x)+(p[i].y-q[j].y)*(p[i].y-q[j].y))/V;
}
bool check(double mid)
{
len=;memset(last,,sizeof(last));
for(int i=;i<=n;i++)
{
bool bk=true;
for(int u=;u<=m;u++)
{
bk=false;
for(int j=;j<=m;j++)
if(u*T1+(u-)*T2+getdis(i,j)<=mid)
ins((u-)*n+i,j), bk=true;
if(bk==false)break;
}
}
int ans=;
tim=;memset(v,,sizeof(v));
memset(match,,sizeof(match));
for(int i=;i<=n;i++)
{
int u=;
for(int u=;u<=m;u++)
{
tim++;
if(findmuniu((u-)*n+i))tim++,ans++;
else break;
}
}
return ans==m;
}
int main()
{
scanf("%d%d%lf%lf%lf",&n,&m,&T1,&T2,&V);T1/=;
for(int i=;i<=m;i++)scanf("%lf%lf",&q[i].x,&q[i].y);
for(int i=;i<=n;i++)scanf("%lf%lf",&p[i].x,&p[i].y); double l=,r=;
while(r-l>1e-)
{
double mid=(l+r)/;
if(check(mid))r=mid;
else l=mid;
}
printf("%.6lf\n",l);
return ;
}

contest hunter 6803 导弹防御塔的更多相关文章

  1. CH6803 导弹防御塔

    6803 导弹防御塔 0x60「图论」例题 背景 Freda的城堡-- "Freda,城堡外发现了一些入侵者!" "喵...刚刚探究完了城堡建设的方案数,我要歇一会儿嘛l ...

  2. bzoj3035: 导弹防御塔

    Description Freda的城堡——“Freda,城堡外发现了一些入侵者!”“喵...刚刚探究完了城堡建设的方案数,我要歇一会儿嘛lala~”“可是入侵者已经接近城堡了呀!”“别担心,rain ...

  3. 「Poetize3」导弹防御塔

    描述 Description Freda控制着N座可以发射导弹的防御塔.每座塔都有足够数量的导弹,但是每座塔每次只能发射一枚.在发射导弹时,导弹需要T1秒才能从防御塔中射出,而在发射导弹后,发射这枚导 ...

  4. [tyvj1935 Poetize3]导弹防御塔 (二分图多重匹配)

    传送门 Description Freda控制着N座可以发射导弹的防御塔.每座塔都有足够数量的导弹,但是每座塔每次只能发射一枚.在发射导弹时,导弹需要T1秒才能从防御塔中射出,而在发射导弹后,发射这枚 ...

  5. 【NOIP2013模拟】导弹防御塔

    题目 Freda的城堡-- "Freda,城堡外发现了一些入侵者!" "喵...刚刚探究完了城堡建设的方案数,我要歇一会儿嘛lala~" "可是入侵者 ...

  6. Codevs2490 导弹防御塔

    2490 导弹防御塔 2490 导弹防御塔 时间限制: 1 s 空间限制: 64000 KB 题目等级 : 大师 Master         题目描述 Description Freda的城堡—— ...

  7. 【CH6803】导弹防御塔

    题目大意:给定 N 座塔,M 个怪物,每座塔一次可以发射一枚导弹,发射导弹有发射时间和冷却时间,每座塔和每只怪物有自己的二维坐标,所有导弹有一个共同的速度,求至少需要多长时间才能将所有怪物消灭. 题解 ...

  8. JoyOI1935 导弹防御塔

    原题链接 首先可以二分答案,然后考虑检验答案. 我们可以对炮塔进行拆点,即能发射\(x\)颗导弹就拆成\(n\times x\)个点,作为一个集合,另一个集合则是\(m\)个侵入者,然后对于能在剩余时 ...

  9. joyoi1935 「Poetize3」导弹防御塔

    #include <iostream> #include <cstring> #include <cstdio> #include <queue> #i ...

随机推荐

  1. JQuery 数据加载中禁止操作页面

    比较常见的做法,但对我而言是第一次做,记录一下. 为了把找来的loading.gif 的背景色设置为透明,还特意装了quicktime. 有学到一些额外的东西. 先将div及img定义好 <bo ...

  2. 三星的Knox Warranty Bit原理

    它是如何触发的? 这个值的状态是烧录在主板上,无法刷写修改, 从0到1 不可逆,除非替换硬件 If a non-Knox boot loader or kernel has been installe ...

  3. 无桌面的linux 安装VMWare Tools

    1.在vmware虚拟机选项下,选择安装vmware-tools 2.将vmware安装目录下的linux.iso装载到系统中 2.1.选择需安装VMWareTools的虚拟机,右击--可移动设备-- ...

  4. 【PostgreSQL-9.6.3】函数(3)--日期和时间函数

    在PostgreSQL中,DATE.TIME.TIMESTAMP是三种不同的数据类型.DATE表示日期类型,格式为YYYY-MM-DD或YYYYMMDD:TIME表示时间类型,格式为hh:mi:ss: ...

  5. std::string格式化输入输出

    在C语言中: C函数有sprintf函数, 比较方便, 但是需要知道所需要的内存空间是多少. 在C++的框架MFC中: 在MFC中CString 有Format函数来格式化字符串. 很方便. 难过的是 ...

  6. 递归删除List元素

    public List<Redenvelope> DeleteList(List<Redenvelope> list) { foreach (var item in list) ...

  7. spring学习地址

    http://developer.51cto.com/art/201006/205212_2.htm

  8. 通俗易懂之SpringMVC&Struts2前端拦截器详解

    直接进入主题吧!一,配置Struts2的拦截器分两步走1配置对应的拦截器类:2在配置文件Struts.xml中进行配置拦截器同时在Strust2中配置拦截器类有三种方法1实现Interceptor接口 ...

  9. 洛谷P1616 疯狂的采药【完全背包】

    题目描述 LiYuxiang是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师.为此,他想拜附近最有威望的医师为师.医师为了判断他的资质,给他出了一个难题.医师把他带到一个到处都是草药的山洞里对他说 ...

  10. 洛谷P1443 马的遍历【BFS】

    题目描述 有一个n*m的棋盘(1<n,m<=400),在某个点上有一个马,要求你计算出马到达棋盘上任意一个点最少要走几步 输入输出格式 输入格式: 一行四个数据,棋盘的大小和马的坐标 输出 ...