计算几何
Spy97
这个作者很懒,什么都没留下…
展开
-
Codeforces 1252I Mission Possible
3200难度的几何题,AC后只有6个人通过 ????题目给出一个长方形区域,区域内有一些圆形的禁区,告知起点和终点,要求找一条从起点出发到终点的折线路径,要求避开禁区(可以贴着通过)题解初看这题,想着递归求解:假设两点的直线不能通过的话,就随机一个中转点,然后求解子问题后来发现,太不靠谱… …仔细看数据的要求,禁区两两相离,而且没有与边界相切的禁区,而且,人可以贴着边界走于是发现,如果起点...原创 2019-10-30 19:48:05 · 208 阅读 · 0 评论 -
Comet OJ - Contest #13 「燕的子安贝 -永命线-」
题意在平面上给定 n 个点和一个 d,要求找到一条直线 ,使得到直线的距离不超过 d 的点的个数最大。输出该最大点数。题解好久没写几何了,冷静分析了好长时间思路还算简洁,就是分类的情况多了点几何上关于360度区间的都很迷因为当你规定角度区间为 [0,360)或(−180,180][0,360)或(-180,180][0,360)或(−180,180] 时,总会有区间跨过这个分界线然后...原创 2019-10-28 23:32:37 · 274 阅读 · 0 评论 -
牛客挑战赛33 C 艾伦的立体机动装置
题意给出一个多边柱体,从上底面的边缘的一点走到下底面边缘的一点,要求不能经过上底面,求最小距离题解首先,侧面展开是一个长方形,如果不能走下底面的话,就是一个长方形上两点的直线距离现在可以经过下底面那么,侧面和下底面的展开图会有很多可能,枚举下底面相连的底边,计算即可。代码#include<bits/stdc++.h>#define N 100010#define ep...原创 2019-10-24 22:58:27 · 288 阅读 · 0 评论 -
Codeforces 1158D Winding polygonal line
题意给n个点,构造一个遍历顺序,共有 n-2 个转弯点,要求 左转或右转的 序列为题目要求的。题解看了官方的题解来的这个序列一定存在首先,出发点一定是一个角落里的点,不妨取最左下的点确定下一步要走的点的步骤将现在所在的点和未走的点连线如果是左转,则要取最考右的点,因为这样能保证下下步走时一定是左转如果是右转,则要取最考左的点,因为这样能保证下下步走时一定是右转代码#inclu...原创 2019-10-24 10:21:48 · 349 阅读 · 0 评论 -
codeforces 1025F Disjoint Triangles
题意:给出n个点,保证没有三点共线,求可以组成多少对不相交的三角形。题解:对于两个不相交的三角形A、B,我们发现有且仅有两条共切线能使得直线两侧是完整的三角形。我的思路就是枚举直线,直线上已经有2个点了,假设直线两侧分别有x、y个点,那么可行的方案就是一侧选两个点,和直线上的点构成三角形,方案数为,求和即可,因为之前说过每对三角形会算两次,所以最后答案要除以2。具体方法...原创 2018-08-24 20:55:20 · 776 阅读 · 0 评论 -
2018 ICPC 沈阳网络赛 The cake is a lie
题意:给出n个半径一致的圆,画一个圆至少完全包含其中的m个,求最小半径。题解:可化简为,n个点,求覆盖掉至少m个的最小的圆O(n^2logn *logR)的解法:二分半径,然后判断这个半径下能覆盖的最多的点,若小于要求,半径变大,若大于要求,半径缩小。如何得知一个半径下能覆盖的最多的点?设半径为r我们枚举每一个点,表示一定要包含的点,我们在包含住这个点的前提...原创 2018-09-11 00:57:15 · 276 阅读 · 0 评论 -
2018 牛客多校第二场 C message
题意:给出n条直线,询问m次,每次询问给出一条直线,问这条直线与那n条直线的在y轴右侧交点的横坐标的最大值。题解:设交点为,则要使x最大,我将一条直线的两个系数a、b看做点(a,b),那么答案就是n个点中到询问点的斜率的最小值。为了方便和便于理解,我们将x坐标取反,转为求斜率的最大值。求上图黑点到红点的斜率最大值,可以变为只求下图连线中的点的斜率...原创 2018-09-19 00:16:42 · 405 阅读 · 0 评论 -
codeforces 886F 889D 890F Symmetric Projections
这题我写吐了,交了31发,最后一发AC,尝试了各种写法以及各种假优化,最后从别人的代码片段中获得灵感,感慨还是自己太蠢了。。。题意:n个点,有一条过原点的直线,如果所有点在这条直线上的投影点是关于某个点对称的,那么这条直线就是GOOD,问这样直线的个数。题解:首先要求出所有点的重心。如果一条直线是GOOD,那么n个点的投影点一定是关于重心的投影点对称的。第一步...原创 2018-09-14 20:31:59 · 296 阅读 · 0 评论 -
牛客国庆集训派对Day2 魔法阵
题意:给出3个点,确定一个正三角形,每个三角形的顶点一一对应一个给出的点,使对应的最大距离最小。题解:官方的给出最优解的样子 代码:#include<bits/stdc++.h>#define N 1010#define INF 0x3f3f3f3f#define eps 1e-10#define pi acos(-1.0)#d...原创 2018-10-02 21:00:41 · 260 阅读 · 0 评论 -
2018 北京网络赛 G题 The Mole
题意:二维平面给出n条线段,每次提问一个点,输出到这个点距离最短的线段的编号。题解:数据随机,就暴力+RP了。。。坐标范围是2^16,将坐标每2^8一个分块,总共有2^16个块。读入一条线段时,将这条线段经过的所有块都加上当前线段的编号。读入一个询问,找到他属于第几块,然后枚举这个块中包含的编号,只在这些线段中求点到线段的最短距离。但是,可能距离最短的线段不在这个...原创 2018-09-22 18:46:41 · 676 阅读 · 0 评论 -
牛客练习赛29 C题 枇杷
题意:二维平面的第一象限内,有两种操作,一是在某个点的权值加一,二是查询一个直角梯形范围内的权值的和。题解:std解法是CDQ分治,想了个分块暴力的方法,速度竟然是最快的。。。将整个第一象限分为128*128(1<<7)个块,每个块是边长为(1<<23)的正方形,这样可以表示坐标(1<<30)范围内的点,满足题目给出的范围建立一个12...原创 2018-10-21 01:16:12 · 388 阅读 · 0 评论 -
Codeforces 1142C U2 凸包
题解对于(x1,y1),(x2,y2)(x_1,y_1),(x_2,y_2)(x1,y1),(x2,y2)确定的抛物线y1=x12+b×x1+cy2=x22+b×x2+cy_1=x_1^2+b\times x_1+c\\ y_2=x_2^2+b\times x_2+cy1=x12+b×x1+cy2=x22+b×x2+c移项后y1−x12=b×x1+cy2−x22=...原创 2019-05-03 10:01:18 · 325 阅读 · 0 评论 -
Codeforces 1146H Satanic Panic
题解首先,总的方案数为Cn5C_n^5Cn5,现在要减去不合法的不合法的一共有下图的两种情况一种是四边形中有一个点,另一种是三角形中有两个点对于第一种情况,枚举所有三角形,设三角形内部有 xxx个点,则有x×n−42x\times\frac{n-4}{2}x×2n−4种不合法的情况,除2是因为第一种情况会被算2次对于第二种情况,x×n−44x\times\frac{n-4}{4}x...原创 2019-05-03 16:09:56 · 241 阅读 · 0 评论 -
2019牛客暑期多校第八场 Flower Dance
题意给一些点,找4个点,要求1个点在剩余三个点围成的三角形的内部,问方案数题解写得我有种不想碰几何的冲动。。。。太迷了,精度迷,同一种意思的不同表达迷,明明那么简洁的思路,为什么写出来这么多特殊情况原创 2019-08-13 16:44:10 · 226 阅读 · 1 评论 -
洛谷 P4557 LOJ P2549 [JSOI2018]战争 闵可夫斯基和凸包
模板题代码#include<bits/stdc++.h>#define N 200010#define INF 0x3f3f3f3f#define eps 1e-5#define pi 3.141592653589793#define mod 998244353// #define P 1000000007#define LL long long#define pb...原创 2019-10-05 23:38:36 · 225 阅读 · 0 评论 -
codeforces 1019D Large Triangle
题意:给出n个点和一个面积s,问能否从n个点中选3个点组成s的三角形的面积为s。题解:这题我思考了很久,因为确实方法不是很好懂。首先,原题是bzoj 3707,这道题是给出n个点,求3个点组成的最小面积。我们先从这题入手。解法一:分块+暴力 将坐标系多次旋转一个随机角度,将点排序后,由于是求最小值,所以在相邻的点最有可能,可以分块,在块内部暴...原创 2018-08-27 23:54:19 · 501 阅读 · 0 评论 -
HDU 6419 Rikka with Rain (暴力)
题意:有一个多边形,提问m个圆,求圆被多边形完全包含需要移动的最少距离。题解:做过的一道目前最难的几何题,充分发挥了暴力的思想。看到这个问题的第一想法就是,多边形向内缩R(圆的半径),然后求圆心到缩小的多边形的最短距离即可。方法就是枚举新的多边形的线段,求点到线段的最短距离。那么我们的目标就成了求新的多边形,但细思极恐......最理想的情况是这样:但是,这...原创 2018-08-23 08:54:07 · 407 阅读 · 0 评论 -
ICPC 2017 青岛 Spacecraft
题目地址:https://nanti.jisuanke.com/t/18518 人生第一篇博客。。。 用两个向量face和head模拟人的方位,向上或向下旋转ang角时,两个向量都旋转ang角,左右旋转时,face旋转ang角,head不变,自己感受一下就知道了。主要就是两个模板,三维空间中点到线段的距离以及向量的旋转。 #include<bits/stdc+...原创 2017-11-13 19:03:38 · 635 阅读 · 0 评论 -
CSU 2029 ATRC 2017
2029: Border WallSubmit Page Summary Time Limit: 3 Sec Memory Limit: 512 Mb Submitted: 2 Solved: 1 DescriptionThrough one of the most controversial presidential elections in the w...原创 2018-04-09 01:21:19 · 275 阅读 · 3 评论 -
CSU 2068 pacnw2012
2068: Ritual CircleSubmit Page Summary Time Limit: 60 Sec Memory Limit: 512 Mb Submitted: 2 Solved: 1 DescriptionBefore the departure of the Fellowship from Rivendell, Bilbo gave ...原创 2018-04-21 16:07:04 · 215 阅读 · 0 评论 -
HDU 1589
模板题,给出一些点,求两点间最近和最远距离。代码:#include <iostream>#include <stdio.h>#include <string.h>#include <algorithm>#include <cmath>#define N 50010#define eps 1e-6using namespace...原创 2018-04-21 19:04:26 · 239 阅读 · 1 评论 -
Codeforce 975E
E. Hag's Khashbatime limit per test3 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputHag is a very talented person. He has always had an artist inside him but his fath...原创 2018-05-17 21:27:34 · 424 阅读 · 0 评论 -
CSU 2212 Particle Collision
DescriptionParticle colliders are difficult to build and experiments are costly to run. Before running any real experiments it is better to do a simulation to test out the ideas first. You are require...原创 2018-06-01 00:06:54 · 264 阅读 · 0 评论 -
Nested Triangles 2018 ACM-ICPC中国大学生程序设计竞赛
题目链接:https://nanti.jisuanke.com/t/28410题目大意:给出n个点,和两个点P,Q,求一个最大的集合,使得集合中的点与P、Q两点围成的三角形是层层包含的,若有多种最大数目的方案,输出字典序最小的。题解:设n个点为点c[i],首先将n个点依据直线PQ的两侧分为两部分,对每一部分,将∠c[i]PQ从小到大排序,再对∠c[i]QP求最长上升子序列就可求出最...原创 2018-07-19 22:50:55 · 1085 阅读 · 0 评论 -
codeforces 982E
题解:先单独处理水平和竖直走的情况,在分析斜着走的情况。每次我们遇到边界,不反弹,而是接着走,理解为地图向前进的两个方向翻转扩展,直到走到了四个角落之一,算出两个方向各自扩展的数量,在根据奇偶来确定坐标。利用扩展欧几里得来算出是否有解。代码:#include<bits/stdc++.h>#define N 1000010#define INF ...原创 2018-07-28 14:53:53 · 263 阅读 · 0 评论 -
codeforces 933C
题意:给出三个点,求将二维平面划分成几部分。题解:感谢quailty的出题以及题解。首先是常规的欧拉公式:其中,表示划分成的平面数,为边数(edge),为顶点数(vertices)。这里,将其进行变形。表示整个图形的圆弧数,对单个圆来说,等于圆的上的交点数,求和即可求出,表示所有圆产生的交点数,我们可以将所有两两圆的交点插入set中,set.size()即为,...原创 2018-07-28 19:49:13 · 662 阅读 · 0 评论 -
codeforces 698D
题意:给出m个射击位置,和n个静止的射击目标,在每个射击位置只能开一枪,问有多少位置是可能被射击到的。题解:对每个目标单独独立判断是否可能被射击到即可,判断方法是dfs,关键是dfs的方法。找到合适高效的dfs是关键,我就在这里跪倒了,太菜了,最后学习了codeforces里大佬的解法,又一次跪服。。。首先,以开枪顺序为切入点,干掉一个目标最多开m枪,而且开枪的顺序也就是...原创 2018-07-30 11:04:38 · 418 阅读 · 0 评论 -
2018上海大都会赛 C题 Rescue
补完题后忙着补其他的了,就光把代码贴出来了,突然发现有人看,赶忙把题解发出来。题意:求两条线段的最近距离。题解:首先求空间中两条异面直线的距离为d,求的方法是板子。。。然后分两种情况:一是,首先我们定义两条直线的距离的方向为v,也就是说,一条直线沿方向v平移,会与另一条直线相交。第一种情况就是,将线段沿方向v平移后交点在两条线段上,那么异面直线的距离就是两条线段的最短距...原创 2018-08-05 13:01:42 · 331 阅读 · 0 评论 -
扫描线
一、矩阵面积并 (HDU 1542)#include<bits/stdc++.h>#define N 2010using namespace std;struct seg{ int l,r,h,d; seg(){} seg(int l,int r,int h,int d):l(l),r(r),h(h),d(d){} bool operat...原创 2018-08-09 23:48:24 · 342 阅读 · 0 评论 -
codeforces 958E3
题意:给出n个A类点和n个B类点,AB配对,要求连线不能有交点,输出方案。题解:感觉是个匹配,想不到解法,学习了别人的代码,原来是分治,长知识了。。。分治的思想是确定一个配对后,然后去解决确定配对的左边和右边。那么如何保证两边一定有解呢?方法比较巧妙。假设当前处理的区间为,我们先在区间内找到最下、最左的点,然后将这个区间内的其他点按极角排序,找出一个合法匹配。 ...原创 2018-08-11 23:17:28 · 321 阅读 · 0 评论 -
HDU 6398
题意:给一个三角形,放在一个给定宽度的无线长的矩形中,要求占得长度最小。题解:分两种情况,一是三角形的边与矩形的边重合,二是三角形的两个点卡在矩形的两条边上。对于第一种情况,枚举底边,算出第三点在底边的投影,就知道要占据的最小宽度,若小于等于矩形宽度,再算出占据的高度。对于第二种情况,枚举卡在矩形的两条边上的两个点,算出该边与矩形宽度的夹角,第三点若在矩形内,再算出占据...原创 2018-08-18 11:06:23 · 387 阅读 · 0 评论 -
ICPC 2017 北京 Liaoning Ship’s Voyage
题目地址:http://hihocoder.com/problemset/problem/1633?sid=1234017 题目大意:在二维平面内,船从(0,0)出发到(n-1,n-1)结束,求最短路,要求:一个点可以向周围8个方向走,距离都为1,并告诉哪些点不可以走,同时要求路线不可以穿过一个三角形。 题解:对每个点标号,建图,最后SPFA搞一下。连边时要判断路线是否...原创 2017-11-19 18:55:31 · 681 阅读 · 6 评论