2864: 战火星空

Time Limit: 10 Sec  Memory Limit: 128 MB
Submit: 33  Solved: 14
[Submit][Status][Discuss]

Description

从APIO回来之后,XX便迷上了“战火星空”这个游戏。

原版战火星空中,有一架小飞机和一个Boss,玩家控制小飞机来对Boss进行射击。然而,这种“一对一”的游戏已经让XX乏味,于是XX基于原版战火星空,将其加强创造了一款新版战火星空。

新版战火星空中,有N个Boss和M架小飞机。在游戏过程中,Boss的位置不会改变,而小飞机在从(Sx, Sy)到(Ex, Ey)的线段以速度V匀速飞行,并在到达终点后从地图上消失;小飞机的子弹具有R的射程,在任意时刻,小飞机可以向在射程内的Boss射击;而为了使实力更加均衡,游戏还规定在任意时刻,每个Boss只能被一架小飞机作为目标射击;每架小飞机也有一个能量值E的限制,若某时刻小飞机向K个Boss射击,则每秒需要消耗K个单位的能量,所有能量消耗完之后小飞机不再能够进行射击。

在游戏开始前,XX知道了所有Boss的位置,以及每架小飞机的飞行路线以及各项属性,他想知道所有Boss被攻击的总时间最大是多少,你能帮助他吗?

Input

第一行包含两个整数N,M,分别表示Boss和小飞机的个数。

接下来N行,每行一个正整数点坐标(x, y),表示Boss所在的位置。

接下来M行,每行七个正整数:Sx, Sy, Ex, Ey, V, R, E,表示每架小飞机的运动路线、速度、射程以及能量值。

Output

输出一个实数,表示所有Boss被攻击的最大总时间,保留6位小数。

Sample Input

样例1:
1 1
2 2
1 1 5 3 2 1 2

样例2:
2 4
12 10
7 5
10 10 12 10 1 1 3
6 1 8 10 1 2 3
3 6 8 2 5 3 1
42 42 42 42 6 6 6

Sample Output

样例1:

0.894427

样例2:

4.983771

HINT

对于30%的数据,保证每个Boss在任意时刻只在最多一架小飞机的射程范围内。对于100%的数据,1≤N,M≤20,输入的所有数均为正整数,且不超过1000。

Source

Solution

计算几何+网络流..

网络流的部分比较简单,就是S到每个飞机连容量,每个能攻击到boss的时间段连T,容量为时间长度,然后由飞机向时间段连边即可。

这里只要求出对于每个boss每个飞机能攻击到的时间段即可。

飞机的飞行路线是一条线段,攻击范围是一个半径为r的圆,那么其实可以枚举每个boss,以boss为圆心求出与这条线段的交点,进而求出可攻击时间。

圆和线段求交就可以直接利用法向量求出垂足,然后勾股求出距离之后,特判一下方向什么的就可以了,然后在和这个飞机的最短最长时间取一下交就可以了。

Code

【BZOJ-2864】战火星空 计算几何 + 最大流的更多相关文章

  1. [BZOJ 1066] [SCOI2007] 蜥蜴 【最大流】

    题目链接:BZOJ - 1066 题目分析 题目限制了高度为 x 的石柱最多可以有 x 只蜥蜴从上面跳起,那么就可以用网络流中的边的容量来限制.我们把每个石柱看作一个点,每个点拆成 i1, i2,从 ...

  2. [BZOJ 1070] [SCOI2007] 修车 【费用流】

    题目链接:BZOJ - 1070 题目分析 首先想到拆点,把每个技术人员拆成 n 个点,从某个技术人员拆出的第 i 个点,向某辆车连边,表示这是这个技术人员修的倒数第 i 辆车.那么这一次修车对整个答 ...

  3. BZOJ.3504.[CQOI2014]危桥(最大流ISAP)

    BZOJ 洛谷 这种题大多是多源多汇跑网络流.往返\(a_n/b_n\)次可以看做去\(a_n/b_n\)次,直接把危桥能走的次数看做\(1\). 先不考虑别的,直接按原图建模:危桥建双向边容量为\( ...

  4. BZOJ.4514.[SDOI2016]数字配对(费用流SPFA 二分图)

    BZOJ 洛谷 \(Solution\) 很显然的建二分图后跑最大费用流,但有个问题是一个数是只能用一次的,这样二分图两部分都有这个数. 那么就用两倍的.如果\(i\)可以向\(j'\)连边,\(j\ ...

  5. BZOJ 5326 [JSOI2017]博弈 (模拟费用流、线段树)

    题目链接 https://www.lydsy.com/JudgeOnline/problem.php?id=5326 题解 终于成为第8个A掉这题的人--orz tzw神仙早我6小时 本以为这东西常数 ...

  6. BZOJ 3504: [Cqoi2014]危桥 [最大流]

    3504: [Cqoi2014]危桥 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1407  Solved: 703[Submit][Status] ...

  7. BZOJ 3532: [Sdoi2014]Lis (最大流)

    题目链接:http://www.lydsy.com:808/JudgeOnline/problem.php?id=3532 题意:给出三个数列ABC,长度均为n.删除A中的某些数字,使得A的最长上升子 ...

  8. BZOJ 3171 循环格(费用流)

    题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=3171 题意: 思路:若能构成循环,则每个格子的入度出度 均为1.因此将每个点拆成两个点x ...

  9. BZOJ 2661: [BeiJing wc2012]连连看 费用流

    2661: [BeiJing wc2012]连连看 Description 凡是考智商的题里面总会有这么一种消除游戏.不过现在面对的这关连连看可不是QQ游戏里那种考眼力的游戏.我们的规则是,给出一个闭 ...

随机推荐

  1. Javascript非构造函数的继承

    一.什么是"非构造函数"的继承? 比如,现在有一个对象,叫做"中国人". var Chinese = { nation:'中国' }; 还有一个对象,叫做&qu ...

  2. 960网格,一个web时代的标志。

    如果你不知道什么是CSS框架,可以回顾我的文章 css框架,一把锋利的剑 闲言少叙,废话不说,直入正题: 1.什么是CSS框架? 正如之前说的: CSS框架是一种你能够使用在你的web项目中概念上的结 ...

  3. JD m站自我解析理解

    第一步:从首页着手 文档部分:应用的是H5默认文档开头 即:<!DOCUMENT html> head部分:放了一些相关的JS,title描述,然后就是meta表述了.比较有参考的如下 & ...

  4. HDU 1867 A + B for you again 字符匹配

    解题报告:给你两个字符串,让你连接起来,没有前后顺序,要求是长度最短优先,其次是字典序最小.这题我用的是KMP,做两次匹配,分别把第一次跟第二次输入的字符串放前面,然后比较两次得到的字符窜的长度和字典 ...

  5. BurpSuite中的安全测试插件推荐

    Burp Suite 是用于攻击web 应用程序的集成平台.它包含了许多工具,并为这些工具设计了许多接口,以促进加快攻击应用程序的过程.所有的工具都共享一个能处理并显示HTTP 消息,持久性,认证,代 ...

  6. [原创]jQuery Validation范例

    上班无事,学习jQuery Validation,于是手写一公共范例,并收藏以便后用 验证操作类formValidatorClass.js }); 测试页index.html         * {} ...

  7. 原生js实现ajax跨域(兼容IE8,IE9)

    html设置meta标签兼容360兼容模式和IE怪异模式 <meta http-equiv="X-UA-Compatible" content="IE=9;IE=8 ...

  8. 使用JS实现俄罗斯方块游戏

    简单的JS俄罗斯方块游戏源码 效果图: 代码如下,复制即可使用: <!DOCTYPE html> <html> <head> <meta charset=&q ...

  9. IOC创建对象的几种方式

    接上一篇IOC入门 IOC创建对象的几种方式 1)调用无参数构造器 2)带参数构造器 3)工厂创建对象 工厂类:静态方法创建对象 工厂类:非静态方法创建对象 1.对之前的User类进行一些修改,加上一 ...

  10. 详解使用 Tarjan 求 LCA 问题(图解)

    LCA问题有多种求法,例如倍增,Tarjan. 本篇博文讲解如何使用Tarjan求LCA. 如果你还不知道什么是LCA,没关系,本文会详细解释. 在本文中,因为我懒为方便理解,使用二叉树进行示范. L ...