【SSL 1232】】【计算几何】(叉积)雷达覆盖

SSL 1232 雷达覆盖


题目

Description

以雷达心为圆心的半圆形雷达覆盖范围有多个点 雷达可旋转,求最多覆盖数(含在边界的)
在这里插入图片描述

Input
多组数据
每组数据第一行有两个整数和一个实数,分别为雷达坐标与半径
第二行为一个整数 n ,表示点数
接下来 n 行,每行两个整数表示点坐标
当半径为负数时,即雷达出现错误,多组数据结束

Output
每组数据输出一行,为题目答案,即雷达最多覆盖数

Sample Input

25 25 3.5
7
25 28
23 27
27 27
24 23
26 23
24 29
26 29
350 200 2.0
5
350 202
350 199
350 198
348 200
352 200
995 995 10.0
4
1000 1000
999 998
990 992
1000 999
100 100 -2.5

Sample Output

3
4
4 

Hint
来源:zju


解题思路

基本概念

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


首先可以很容易将雷达不可能达到的点排出去,与雷达坐标距离超过半径

枚举雷达的边覆盖哪个点,即以哪个点为边
在这里插入图片描述
比如黄点与雷达中心划线,以这条线为雷达边边旋转
然后就是用叉积判断其它点方向,负的和正的分成两边,正负覆盖点取max
注意叉积为零时,也就是在雷达边上,即算负也算正


Code

#include <iostream
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值