【BZOJ-2864】战火星空 计算几何 + 最大流
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
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
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】战火星空 计算几何 + 最大流的更多相关文章
- [BZOJ 1066] [SCOI2007] 蜥蜴 【最大流】
题目链接:BZOJ - 1066 题目分析 题目限制了高度为 x 的石柱最多可以有 x 只蜥蜴从上面跳起,那么就可以用网络流中的边的容量来限制.我们把每个石柱看作一个点,每个点拆成 i1, i2,从 ...
- [BZOJ 1070] [SCOI2007] 修车 【费用流】
题目链接:BZOJ - 1070 题目分析 首先想到拆点,把每个技术人员拆成 n 个点,从某个技术人员拆出的第 i 个点,向某辆车连边,表示这是这个技术人员修的倒数第 i 辆车.那么这一次修车对整个答 ...
- BZOJ.3504.[CQOI2014]危桥(最大流ISAP)
BZOJ 洛谷 这种题大多是多源多汇跑网络流.往返\(a_n/b_n\)次可以看做去\(a_n/b_n\)次,直接把危桥能走的次数看做\(1\). 先不考虑别的,直接按原图建模:危桥建双向边容量为\( ...
- BZOJ.4514.[SDOI2016]数字配对(费用流SPFA 二分图)
BZOJ 洛谷 \(Solution\) 很显然的建二分图后跑最大费用流,但有个问题是一个数是只能用一次的,这样二分图两部分都有这个数. 那么就用两倍的.如果\(i\)可以向\(j'\)连边,\(j\ ...
- BZOJ 5326 [JSOI2017]博弈 (模拟费用流、线段树)
题目链接 https://www.lydsy.com/JudgeOnline/problem.php?id=5326 题解 终于成为第8个A掉这题的人--orz tzw神仙早我6小时 本以为这东西常数 ...
- BZOJ 3504: [Cqoi2014]危桥 [最大流]
3504: [Cqoi2014]危桥 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1407 Solved: 703[Submit][Status] ...
- BZOJ 3532: [Sdoi2014]Lis (最大流)
题目链接:http://www.lydsy.com:808/JudgeOnline/problem.php?id=3532 题意:给出三个数列ABC,长度均为n.删除A中的某些数字,使得A的最长上升子 ...
- BZOJ 3171 循环格(费用流)
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=3171 题意: 思路:若能构成循环,则每个格子的入度出度 均为1.因此将每个点拆成两个点x ...
- BZOJ 2661: [BeiJing wc2012]连连看 费用流
2661: [BeiJing wc2012]连连看 Description 凡是考智商的题里面总会有这么一种消除游戏.不过现在面对的这关连连看可不是QQ游戏里那种考眼力的游戏.我们的规则是,给出一个闭 ...
随机推荐
- 消息队列之RabbitMQ的.Net客户端EasyNetQ
https://www.cnblogs.com/CoderAyu/p/9072408.html http://www.cnblogs.com/panzi/p/6337568.html http://w ...
- html5 canvas 径向渐变2
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- shape-outside 矩形之外的另一种思路
http://docs.webplatform.org/wiki/css/properties/shape-outside
- Linux - awk 文本处理工具二
awk 判断格式 awk '{print ($1>$2)?"第一排"$1:"第二排"$2}' # 条件判断 括号代表if语句判断 "?" ...
- sqlserver2008R2数据库自动备份脚本
CREATE proc [dbo].[usp_autoBackupDB] @dbname sysname=null --要备份的数据库名,不指定即为全部备份 ,)='d:\' --备份目录路径 ,)= ...
- mysql.user细节三问
一.如何拒绝用户从某个精确ip访问数据库假如在mysql.user表中存在用户'mydba'@'192.168.85.%',现在想拒绝此用户从某个精确ip访问数据库 # 创建精确ip用户,分配不同的密 ...
- Java继承关系概述
Java中只支持单继承关系 示例代码: package com.java1995; public class People { private String name; private int age ...
- JavaEE之JavaWeb简介
- 证书(Certificate)与描述文件(Provisioning Profiles)
在使用脚本xcodebuild自动打包的时候,会用到签名证书和描述文件,我在编译的时候搞了好长时间才搞明白,下面介绍如何得到正确配置. 证书:证书是用来给应用程序签名的,只有经过签名的应用程序才能保证 ...
- IntelliJ Idea中创建package的问题
在idea中创建package时,会一直往后面累加 想在com.huayang下面再新建一个service,普通的做法是选中了huayang.dao--->然后右键--->新建了一个pac ...