「题解」USACO15FEB Fencing the Herd G

本文介绍了USACO竞赛中的一道题目,涉及计算几何和CDQ分治算法。通过将点与直线是否同侧的问题转化为求凸包上的最值,利用几何性质解决,最后采用分治策略优化了动态维护凸包的转移过程,实现了离线解决方案,总时间复杂度为Θ(nlog²n)。
摘要由CSDN通过智能技术生成

本文将同步发布于:

题目

题目链接:洛谷 P3122USACO 官网

题意概述

给你平面上的一些点和直线,有两种操作:

  • 新加入一个点 ( x , y ) (x,y) (x,y)
  • 给定一条直线 a x + b y = c ax+by=c ax+by=c,询问是否所有点都在这条直线的同侧(在直线上不合法)。

初始时有 n ≤ 1 0 5 n\leq 10^5 n105 个点,共有 q ≤ 1 0 5 q\leq 10^5 q105 次操作。

题解

对题意转化

我们考虑将 所有点都在直线的同一侧 这一条件进行转化。

具体地,我们先考虑一个简单的子问题。

简单子问题

问题是这样的,对于一条标准形式的直线 a x + b y + c = 0 ax+by+c=0 ax+by+c=0,在它同侧的点 ( x p , y p ) (x_p,y_p) (xp,yp) 满足什么性质?

我们倒推并分类讨论:

  • a x p + b y p + c = 0 ax_p+by_p+c=0 axp+byp+c=0,显然点 ( x p , y p ) (x_p,y_p) (xp,yp) 在这条直线上;
  • a x p + b y p + c < 0 ax_p+by_p+c<0 axp+byp+c<0,显然它与所有点 q q q 满足 a x q + b y q + c < 0 ax_q+by_q+c<0 axq+byq+c<0 在直线的同侧;
  • a x p + b y p + c > 0 ax_p+by_p+c>0 axp+byp+c>0,显然它与所有点 q q q 满足 a x q + b y q + c > 0 ax_q+by_q+c>0 ax
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值