计算几何
文章平均质量分 72
计算几何
呃呃...
这个作者很懒,什么都没留下…
展开
-
CF140F 计算几何
题目大意:给定平面上nnn个不同的点,最多删除kkk个点,在所有删除情况中,删完之后的所有点如果以坐标系上某一个点中心对称,输出所有这样子的中心点。若是有无数个这样的中心点,则输出−1-1−1解题思路:先将所有点按照xxx为第一关键字排序,再按照yyy为第二关键字,从小到大排序可以发现未删除的点,如果有对称中心,则必然是(p[1]+p[n])/2(p[1]+p[n])/2(p[1]+p[n])/2,倘若p[1]p[1]p[1]不和p[n]p[n]p[n]对称,假设和p[k]p[k]p[k]对称,而原创 2021-10-12 20:33:22 · 68 阅读 · 0 评论 -
CF698D (计算几何+模拟)
题目大意:kkk个射击点,平面上有nnn只怪兽,每个射击点只能射击一次,且只能射击方向上第一个没死的怪兽。射击顺序任意,有多少只怪物可能被打死。解题思路:整了个特别不好实现的思路…最后看的题解枚举每只怪兽xxx,对于每只怪兽,k!k!k!枚举开枪顺序,模拟过程大概是:第一枪p1p_1p1要射中xxx,倘若中间有怪兽yyy,那么第二枪p2p_2p2就要去射击yyy,如果p2p_2p2与yyy之间有怪兽zzz在中间,则继续递归下去即可预处理设计点和每个怪兽中间的怪兽,时间复杂度为O(kn2)O原创 2021-10-11 15:10:17 · 87 阅读 · 0 评论 -
18牛客暑假多校C(计算几何)
题目大意:n(≤50000)n(\le 50000)n(≤50000)条直线(y=ax+by=ax+by=ax+b),m(≤50000)m(\le 50000)m(≤50000)个询问,每次询问给出一条直线:y=cx+dy=cx+dy=cx+d,询问这条直线和nnn条直线交点最远的点的横坐标(答案必须大于等于0)解题思路:相交的点为如下方程:ax+b=cx+dx=b−dc−a→x=b−d−a−(−c)ax+b=cx+d\\x=\frac{b-d}{c-a} \rightarrow x=\f原创 2021-10-02 21:56:42 · 83 阅读 · 0 评论 -
CF982E 扩展欧几里得+计算几何
题目大意:n∗mn*mn∗m大小的桌球台有一个球,坐标为(x,y)(x,y)(x,y),给球任意八个方向(上,下,左,右,左上,左下,右上,右下)的初速度,问最终能否进入四个顶点的球袋,如果可以,最终进入哪个球袋解题思路:对于上,下,左,右可以特判首先看如果球的初始方向是左下,那么通过对称最终图片是这样如果最终可以进入球袋,那么就要找最小的整数aaa,满足:x+an=y+bm→an−bm=y−xx+an=y+bm \rightarrow an - bm = y - xx+an=y+原创 2021-09-28 22:14:59 · 110 阅读 · 0 评论 -
CF85E (二分)
题目大意:平面上有n(≤5000)n(\le 5000)n(≤5000)个整点,将这些点分为两组,使d1d1d1为第一组中最大的哈夫曼距离,d2d2d2同理,找出有多少种分组方式,使得min(d1,d2)min(d1,d2)min(d1,d2)最小,题目大意:这道题就特别像noipnoipnoip当初那道关押犯罪只要二分哈夫曼距离,对于大于该距离得点对就分在两边,通过染色来判断是否合法(即判断是否是二分图),如果对于一个二分值,有numnumnum个二分图,那么方案数就是2num2^{num}2n原创 2021-09-27 20:05:16 · 105 阅读 · 0 评论 -
CF13D (计算几何)
题目大意:二维坐标系上N(≤500)N(\le 500)N(≤500)个红点,M(≤500)M(\le 500)M(≤500)个蓝点,任意三点都不共线,求有多少个红点构成的三角形其中不包含蓝点解题思路:先设一个最左下角点OOO,设num[i]][j]num[i]][j]num[i]][j]为△Oij\triangle Oij△Oij(i,j均为红点i,j均为红点i,j均为红点)内有多少个蓝色点,如果OiOiOi在OjOjOj的逆时针方向则num[i][j]num[i][j]num[i][j]为负最原创 2021-09-24 22:52:31 · 168 阅读 · 2 评论 -
CF682E 计算几何,对称
题目大意:给n(≤5000)n(\le 5000)n(≤5000)个点,任意三个点构成的三角形面积不会超过S(≤1018)S(\le 10^{18})S(≤1018)寻找一个顶点都为整点的三角形包含所有顶点,面积不超过4S4S4S解题思路:先任意找给定nnn个点中的三个点a,b,ca,b,ca,b,c,对于线段ababab,倘若有其他点iii,构成的三角形△abi\triangle abi△abi面积大于△abc\triangle abc△abc,则将ccc替换,对于其他边同理(这个算法并不是求原创 2021-09-23 15:32:13 · 110 阅读 · 0 评论 -
CF1394C 计算几何
题目大意:nnn个字符串,每个字符串仅包含B,NB,NB,N两种字符,可以对BN−stringBN-stringBN−string进行如下操作:移走一个字符移走“BN”“BN”“BN”,“NB”“NB”“NB”的子串添加一个字符BBB,或NNN在sss的末尾添加“BN”“BN”“BN”或者“NB”“NB”“NB”在sss的末尾定义两个字符串相似的条件:BBB与NNN的个数分别都相等且定义dist(s,t)dist(s,t)dist(s,t)代表sss与ttt相似的最小操作次数找到一个字符原创 2021-09-18 09:34:37 · 63 阅读 · 0 评论 -
CF535E 计算几何
题目大意:nnn个运动员,有两段赛道,第iii个运动员在第一段赛道跑的速度是vi1v_{i1}vi1,第二段赛道跑的速度是vi2v_{i2}vi2,现在不知道每种赛道的长度,询问有哪些运动员可能最后赢得比赛解题思路:可以先将运动员速度从小到大排序,第一关键字为第一种速度通过排序,可以先将一些必不可能成为赢家的筛选掉(其两种速度都小于某一个人的两种速度),并且对于两种速度都相同的去重处理对于三个人,中间那个人可能成为赢家的条件是:(sss为第一种速度,ttt为第二种速度,x为第一段长原创 2021-09-16 21:09:39 · 89 阅读 · 0 评论 -
CF2C 计算几何
题目大意:三个不相交的圆,且三个圆心不在同一直线上,圆外找一点,到三个圆的切线角相等(多个,则要求切线角最大),如果没有则不输出解题思路:寻思着二分切线角,判断是否三个圆有交集从而往大分往小分,但失败了。。。有个测试点,发现怎样都不对设Ri=dis(p,oi)R_i=dis(p,o_i)Ri=dis(p,oi)为圆外点到第iii个圆圆心距离,因为题目其实要求arcsin(r1R1)=arcsin(r2R2)=arcsin(r3R3)arcsin(\frac{r_1}{R_1}) = arcsi原创 2021-09-15 23:15:38 · 204 阅读 · 0 评论 -
HDU-7112 计算几何
题目大意:已知一个凸包的前提下,每次查询给出一个三角形,求平面内可以和三角形内的点构成射线穿过凸包但构成线段不穿过凸包的点的面积。解题思路:(因为官方思路更加清晰,所以这里借用官方的思路)AC代码:#include <bits/stdc++.h>#define ft first#define sd second#define IOS ios::sync_with_stdio(false), cin.tie(0), cout.tie(0)#define seteps(N) fi原创 2021-09-01 15:32:26 · 157 阅读 · 0 评论 -
2014ACM-ICPC,Asia Mudanjiang Regional Contest_G(扩展欧几里得+计算几何)
2014ACM-ICPC,Asia Mudanjiang Regional Contest_G题目大意:给出一个圆和两个整点,询问有多少个整点满足下列条件:在园内,且三个整点构成三角形的面积的两倍为给定整数S解题思路:这道题其实非常容易能通过叉乘转换成两条直线有多少个整点处在园内的问题。向量v1 = (x2-x1,y2-y1),v2 = (x-x1,y-y1) |v1 叉乘 v2| = |s||(x2 - x1) * (y - y1) - (y2 - y1) * (x - x1)|原创 2021-06-01 20:12:21 · 92 阅读 · 0 评论 -
2018ICPC-Jiaozuo D(计算几何)
D. Keiichi Tsuchiya the Drift King题目大意:给出宽为a,长为b的车,有一半径为r,角度为d的拐弯弯道,求出最小宽度且车的右上角始终为车与圆的相切点。解题思路:临界情况如下图,此时θ=arctan(b/(a+r))\theta=arctan(b/(a+r))θ=arctan(b/(a+r)),所以当所需转过的角度大于θ\thetaθ时,答案始终为:sqrt((a+r)2+b2)−rsqrt((a+r)^2+b^2)-rsqrt((a+r)2+b2)−r当原创 2021-05-25 11:27:57 · 110 阅读 · 0 评论 -
凸包的简单基操(欢迎入坑凸包!!!)
前言: 这是第一次接触凸包,希望把自己学到的东西记录下来,如果认为本文还有待修改的地方,欢迎留言!!!凸包的前置知识(不难,请自行百度):向量叉乘平面上离散点质心的求法凸包:二维平面上能够恰好将所有点包围起来的最小长度的图形凸包的基本操作一:求凸包的周长 首先问下大家如果给大家一个多边形,你们会怎么求他的周长?(就比如下面这幅图) 它的周长C=∣AB∣+∣BC∣+∣CD∣+∣DA∣C=|AB|+|BC|+|CD|+|DA|C=∣AB∣+∣BC∣+∣CD∣+∣DA∣ 为了方便我原创 2020-05-26 21:08:28 · 577 阅读 · 0 评论