contest hunter 6803 导弹防御塔
没什么好写的。写写这题吧
拆点,把一个防御塔拆成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 导弹防御塔的更多相关文章
- CH6803 导弹防御塔
6803 导弹防御塔 0x60「图论」例题 背景 Freda的城堡-- "Freda,城堡外发现了一些入侵者!" "喵...刚刚探究完了城堡建设的方案数,我要歇一会儿嘛l ...
- bzoj3035: 导弹防御塔
Description Freda的城堡——“Freda,城堡外发现了一些入侵者!”“喵...刚刚探究完了城堡建设的方案数,我要歇一会儿嘛lala~”“可是入侵者已经接近城堡了呀!”“别担心,rain ...
- 「Poetize3」导弹防御塔
描述 Description Freda控制着N座可以发射导弹的防御塔.每座塔都有足够数量的导弹,但是每座塔每次只能发射一枚.在发射导弹时,导弹需要T1秒才能从防御塔中射出,而在发射导弹后,发射这枚导 ...
- [tyvj1935 Poetize3]导弹防御塔 (二分图多重匹配)
传送门 Description Freda控制着N座可以发射导弹的防御塔.每座塔都有足够数量的导弹,但是每座塔每次只能发射一枚.在发射导弹时,导弹需要T1秒才能从防御塔中射出,而在发射导弹后,发射这枚 ...
- 【NOIP2013模拟】导弹防御塔
题目 Freda的城堡-- "Freda,城堡外发现了一些入侵者!" "喵...刚刚探究完了城堡建设的方案数,我要歇一会儿嘛lala~" "可是入侵者 ...
- Codevs2490 导弹防御塔
2490 导弹防御塔 2490 导弹防御塔 时间限制: 1 s 空间限制: 64000 KB 题目等级 : 大师 Master 题目描述 Description Freda的城堡—— ...
- 【CH6803】导弹防御塔
题目大意:给定 N 座塔,M 个怪物,每座塔一次可以发射一枚导弹,发射导弹有发射时间和冷却时间,每座塔和每只怪物有自己的二维坐标,所有导弹有一个共同的速度,求至少需要多长时间才能将所有怪物消灭. 题解 ...
- JoyOI1935 导弹防御塔
原题链接 首先可以二分答案,然后考虑检验答案. 我们可以对炮塔进行拆点,即能发射\(x\)颗导弹就拆成\(n\times x\)个点,作为一个集合,另一个集合则是\(m\)个侵入者,然后对于能在剩余时 ...
- joyoi1935 「Poetize3」导弹防御塔
#include <iostream> #include <cstring> #include <cstdio> #include <queue> #i ...
随机推荐
- supervisord 使用记录
#supervisor简介 Supervisor是一个 Python 开发的 client/server 系统,可以管理和监控类 UNIX 操作系统上面的进程. #组成部分 supervisord(s ...
- 前端面试基础-html篇之H5新特性
h5的新特性(目前个人所了解)如下 语义化标签 表单新特性 视频(video)和音频(audio) canvas画布 svg绘图 地理定位 为鼠标提供的拖放API webworker (重点)Stor ...
- Android_方向传感器
Android方向传感器小案例,主要代码如下: package com.hb.direction; import android.app.Activity; import android.conten ...
- 压缩映射:简单最邻近搜索-(SLH)Simple Linear Hash
Compact Projection: Simple and Efficient Near Neighbor Search with Practical memory Requirement Auto ...
- c#同步锁Monitor.Enter(T)
protected static object MObjLock = new object();//同步锁 public string GetData(int mId) { Monitor.Enter ...
- 简单servlet调用dao层完整步骤
导入包lib(文件名称) 目录结构:web下:views.web-inf.index.jsp views下各种jsp文件和js(里面放封装好的jquery包) js下:jquery包(js文件后缀) ...
- MySQL在Linux下的表名如何不区分大小写
MySQL在Linux下的表名如何不区分大小写 今天测试的时候,遇到一些问题,明明看到数据,就是查不出来;后来发现,在linux下, mysql的表名区分大小写,而在windows下是不区分,从w ...
- mysql主主同步
Mysql 主主同步方案 第一台机器主 [root@master ~]# vim /etc/my.cnf [mysqld] server-id=1 log-bin=mysql-binlog log-s ...
- swift UITableViewCell 中的单选控制样式
我昨天在网上找了一晚上的资料,但是大多都是OC得语法,swift资料实在是太少了,使得我这个刚入门swift的彩笔好不吃力,后面一直各种翻阅资料,终于让我找到了 visibleCells 这个方法,直 ...
- MongoDB之Too many open files
在Linux下有时会遇到cannot open /dev/urandom Too many open files的问题.其实Linux是有文件句柄限制的,而且Linux默认一般都是1024(阿里云主机 ...