首页 > 其他分享 >tmp

tmp

时间:2023-02-22 16:12:57浏览次数:35  
标签:tmp 纵坐标 线段 充要条件 点到 三角形 sum

好的,你给出的这个问题正好可以用 CDQ 分治算法来解决。下面我来具体讲解一下如何使用 CDQ 分治算法解决这个问题。

首先,我们需要将所有询问按照 \(x\) 坐标排序。然后我们从小到大地枚举每个询问,对于每个询问,我们先求出当前所有横坐标小于等于 \(x\) 的点中,纵坐标在 \(y\) 和 \(y+d\) 之间的点的个数,记为 \(sum\)。这可以通过在平面上维护一个以纵坐标为关键字的数据结构(例如平衡树或树状数组)来实现。

接下来,我们需要将当前询问的三个点 \(A(x+d,y),B(x,y),C(x,y+d)\) 按照 \(y\) 坐标排序。我们将 \(B\) 点作为当前询问的中间点,然后分别对 \(A\) 点和 \(C\) 点进行分类讨论:

如果 \(A\) 点的纵坐标小于 \(B\) 点的纵坐标,则 \(A\) 点在三角形内部的充要条件是 \(A\) 点到 \(B\) 点的连线与 \(BC\) 线段的夹角小于 \(90^\circ\)。为了方便计算,我们可以将 \(A\) 点到 \(B\) 点的连线平移并旋转,使得 \(B\) 点的坐标为原点 \((0,0)\),\(BC\) 线段平行于 \(x\) 轴。这样,\(A\) 点在三角形内部的充要条件就变成了 \(A\) 点的横坐标在 \(0\) 和 \(x/d\) 之间,且纵坐标在 \(0\) 和 \(d\) 之间。因此,我们可以用上一步求出的 \(sum\) 值来计算 \(A\) 点在三角形内部的贡献。

如果 \(C\) 点的纵坐标大于 \(B\) 点的纵坐标,则 \(C\) 点在三角形内部的充要条件是 \(C\) 点到 \(B\) 点的连线与 \(AB\) 线段的夹角小于 \(90^\circ\)。同理,我们可以将 \(C\) 点到 \(B\) 点的连线平移并旋转,使得 \(B\) 点的坐标为原点 \((0,0)\),\(AB\) 线段平行于 \(y\) 轴。这样,\(C\) 点在三角形内部的充要条件就变成了 \(C\) 点的横坐标在 \(x/d\) 和 \(1\) 之间,且纵坐标在 \(d\) 和 \(2d\) 之间。因此,我们也可以用上一步求出的 \(sum\) 值来计算 \(C\) 点在三

标签:tmp,纵坐标,线段,充要条件,点到,三角形,sum
From: https://www.cnblogs.com/Cap1taL/p/17144732.html

相关文章

  • [vncserver] Warning: VM-8-10-ubuntu:1 is taken because of /tmp/.X11-unix/X1
    环境Ubuntu18问题描述解决方法将提示的文件删掉,并重新运行rmif[文件名]如果出现灰屏、黑×,并提示unencrytedconnection解决方法......
  • Nginx+Rtmp推流服务器方案
    推流服务器方案一一、前期准备操作系统:Centos7Linux系统Nginx版本:nginx-1.22.0.tar.gzRTMP模块:nginx-rtmp-module推流工具:OBS-Studio拉流工具二、环境搭建1.安......
  • FFmpeg:搭建rstp/rtmp/HLS服务器(测试推流)
    在日常开发中,有些时候需要做一些推拉流测试,但又找不到可以测试的拉流地址,这个时候,可以使用rtsp-simple-server来搭建rtsp/rtmp/HLS服务器。1.服务器搭建rstp-simple-ser......
  • mitmproxy 抓包神器-5.mock功能使用
    前言mitmproxy可以抓到请求后重定向到另外一个地址,也可以自定义返回的response内容重定向请求在实际工作中,调试接口的时候,有时候需要把线上的接口地址替换成本地地址......
  • mitmproxy 抓包神器-4.拦截请求实现篡改请求和返回数据
    前言fiddler工具有个打断点功能非常实用,可以实现拦截请求,篡改请求和返回的数据。mitmproxy可以用python代码写插件的方式实现拦截请求,篡改请求和返回数据。fiddler打......
  • mitmproxy 抓包神器-3.抓取网站数据或图片
    前言Mitmproxy是一个免费的开源交互式的HTTPS代理。MITM即中间人攻击(Man-in-the-MiddleAttack)。mitmproxy工具有以下三个组件构成mitmproxy是具有SSL/TLS功能的交......
  • VNC FATAL: 'runuser -l ai' failed! taken because of /tmp/.X11-unix/X1
    VNC无法启动。查看状态,报错如下:阅读日志后,注意到框选部分的提示。删除/tmp/目录下的.X11-unit后,重启VNC服务,恢复正常。结束。 ......
  • tmp
     改code方式修改logcatbuffersize比如加在device下的device.mk里:PRODUCT_PROPERTY_OVERRIDES+=\ro.logd.size=5M设置各种buffersize(main/system/crash)syst......
  • 一个简单的RTMP服务器实现 --- RTMP与H264
    PS:要转载请注明出处,本人版权所有。PS:这个只是基于《我自己》的理解,如果和你的原则及想法相冲突,请谅解,勿喷。前置说明  本文作为本人csdnblog的主站的备份。(BlogID......
  • 一个简单的RTMP服务器实现 --- RTMP与FLV
    PS:要转载请注明出处,本人版权所有。PS:这个只是基于《我自己》的理解,如果和你的原则及想法相冲突,请谅解,勿喷。前置说明  本文作为本人csdnblog的主站的备份。(BlogID......