
几何
文章平均质量分 79
yzyyylx
这个作者很懒,什么都没留下…
展开
-
洛谷 P2533 [AHOI2012]信号塔 (最小圆覆盖)
题面题意 给出n个点,输出最小覆盖圆的坐标和半径 做法 首先用random_shuffle随机化点的顺序,然后做以下操作: 1.枚举所有点(设为i从2到n),若有点在当前圆外(一开始的圆为第一个点,半径为0),则将圆心变为这个点,半径改为0,进入2. 2.枚举已经考虑过的点(设为j从1到i-1),若有点在当前圆外,将圆心变为i,j两点的中点,半径为两点距离的一半. 3.枚举原创 2018-01-12 10:19:16 · 459 阅读 · 0 评论 -
codeforces1158D Winding polygonal line
题面 题意 在平面上有n个点,现在给你一个长度为n-2的由LR构成的序列,要求你求出一个排列,使得按照排列在点之间连线后组成的路径中没有相交的线段,而且n-2个拐点的转弯方向与给出的序列相同. 做法 可以先在这n个点构成的凸包上任选一点作为起点,然后若第一个拐点的方向是向左,则可以在剩下n-1个点中选择一个点,使得无论第三个点选什么都满足第一个拐点是向左拐的,不难发现这个点一定存在,可以用差积求出...原创 2019-05-19 16:37:25 · 639 阅读 · 0 评论 -
codeforces528E Triangles 3000
题面 题意 在平面上有n条直线,随机选择三条,其面积的期望大小是多少。 做法 很显然,面积的期望要转化为所有三角形的面积和除以(n3)n\choose3(3n),考虑计算三角形的面积和。 可以把三角形ABC的面积转化为(OA×OB+OB×OC+OC×OA)/2,这样只要分别计算这几个叉积的和即可。 经过观察不难发现,如果OA,OB的叉积会被计算,当且仅当A,B两点都在某条给出的直线上 ,因此我们...原创 2019-03-03 20:29:24 · 468 阅读 · 0 评论 -
[CQOI2005]三角形面积并
题面 题意 给出n个三角形,求它们的面积并。 做法 首先求出所有点的坐标(包括三角形的顶点坐标和三角形边的所有交点),根据它们的横坐标分段之后可以发现每一部分的面积都等价于梯形,然后暴力求出这几个横坐标上的线段长度和,再逐块相加即可。 代码 #include<bits/stdc++.h> #define db double #define P pair<db,db> #de...原创 2018-12-22 12:01:31 · 530 阅读 · 0 评论 -
codeforces 886F Symmetric Projections
题面 题意 在一个二维平面上有n个点,问有几条过原点的直线,使n个在直线上的投影中心对称。 做法 首先发现这条直线是否合法仅与它的斜率有关,然后发现这条直线必过这n个点的重心,因此,关于重心中心对称的点对可以直接去掉(它们在任何过重心的直线下中心对称),然后我们可以暴力枚举每个点与那个点对称,确定一对即可得到一条直线,可以暴力枚举n2n^2n2组点对,这样一条合法直线至少被得到n2\frac{n}...原创 2018-11-05 21:24:19 · 232 阅读 · 0 评论 -
UVA - 12304 2D Geometry 110 in 1!
题面 题意 计算几何模板题,一共有六种操作: 1.给出三个点,求它们的外接圆。 2.给出三个点,求它们的内切圆。 3.给出一个点个一个圆,求过这个点且与圆相切的直线与X轴的夹角。 4.给出一给点,一条线和r,求半径为r且与这条直线相切并过这个点的圆的圆心坐标。 5.给出两条直线和r,求半径为r且同时与这两条直线相切的圆的圆心坐标。 6.给出两个圆和r,求半径为r且同时与这两个圆相切的圆的圆心坐标。...原创 2018-09-27 21:53:09 · 250 阅读 · 0 评论 -
CodeForces 388E Fox and Meteor Shower
题面 题意 有n个流星,给出他们在t1,t2两时刻的位置,问从中最多选出几颗流星,使它们两两流星之间必有一个时刻位于同一位置。 做法 因为每个流星要在时间相同且位置相同时才能相遇,因此可以看作是一个三维空间上的几条直线。 要想直线两两相交,可以发现只有两种情况: 1.这几条直线交于同一点。 2.这几条直线位于同一个面上且斜率不同。 对这两种情况分别计算最大值即可。 代码 ...原创 2018-08-07 21:19:57 · 283 阅读 · 0 评论 -
SPOJ - CIRU,bzoj 2178 圆的面积并
SPOJ-CIRU,bzoj2178 圆的面积并 题意 给出n个圆,求出它们的面积并. 做法 首先要引入辛普森积分: 用于求解由平滑曲线构成的面积,f(x)根据具体题意而定. 在本题中a,b表示求的组合图形的左右两端的横坐标,f(i)是x=i这条直线经过的图形的总长度. 比如说要用这个方法求一个圆心坐标为(1,2),半径为1的圆: 那么a=x-r=0,b=x+r=2,f(a...原创 2018-05-11 16:35:42 · 2334 阅读 · 0 评论 -
初赛复习
题目 一个平面的法线是指与该平面垂直的直线。过点(1,1,1)、(0,3,0)、(2,0,0)的平面的法线是()。 A.过点(1,1,1)、(2,3,3)的直线 B.过点(1,1,1)、(3,2,1)的直线 C.过点(0,3,0)、(-3,1,1)的直线 D.过点(2,0,0)、(5,2,1)的直线 方法 1.若两直线向量积之和为0,则两直线垂直 2.若该直原创 2017-10-13 08:03:14 · 624 阅读 · 0 评论 -
洛谷 P1325 雷达安装
题面题意 x轴上方上给出n个点,在x轴上至少要做几个半径为r的圆使它们全部被覆盖. 方法 首先先算出每个点要被覆盖所需要的圆的圆心范围,这样问题就转化为了在n个区间中至少取几个点,使每一个区间中都有至少一个点. 方法是贪心,一开始的写法是根据左端点排序,每次若该区间中无点,则取当前的右端点为新的圆心,但因为无法保证右端点一定被覆盖,因而贪心错误.hack数据:2个区间,(1,4),(2原创 2018-01-15 18:45:06 · 259 阅读 · 0 评论 -
洛谷 P3630 [APIO2010]信号覆盖
题面题意 给出n个点(没有三点共线),取三个点做它们的外接圆,问所有取法中覆盖的点的平均个数是多少. 方法 考虑每一个四边形对答案的贡献值(除了取的三个点外的覆盖点),每个凹四边形的贡献值为1,因为只有取最外面的三点才能多覆盖一个,而凸四边形的贡献值为2,因为有一对对角之和小于180,另一对对角大于180. 之后问题就被转化为了求所有组成的四边形的凹四边形的个数. 求凹四边形原创 2018-01-12 18:50:40 · 300 阅读 · 0 评论 -
codeforces1146H Satanic Panic
题面 题意 平面上有n个点,两两之间连线后,求一共能构成多少个五角星. 做法 首先可以将五角星看作是有5个点的凸包,也就是5个极角排序后递增的向量首尾相接后得到的图形. 因此可以记dp[x][y][i]dp[x][y][i]dp[x][y][i]表示从点x到点y经过i个线段的方案数,对所有向量(一个线段可以看作是两个向量)进行极角排序后,依次来更新dp值,这样∑i=1ndp[i][i][5]\su...原创 2019-05-07 10:05:14 · 282 阅读 · 0 评论