合集-计算几何
摘要:原题链接 题解 对于一个圆而言,如果两个点都在其内或其外,那么这个圆是不会经过的 所以穿过的圆是其中一个点在里面,另一个点在外面 code #include<bits/stdc++.h> using namespace std; struct node { int x,y,r; }circle[10
阅读全文
摘要:原题链接 题解 有点思维,已知一个交点不会有三条对角线经过,所以有且只有两条对角线经过,而两条对角线又对应四个顶点,所以变成了组合数学,n个顶点里取四个。 为了防止溢出,这里做了一些处理 code #include<bits/stdc++.h> using namespace std; int ma
阅读全文
摘要:原题链接 题解 由于本题数据范围小,所以考虑暴力 两点确定一条直线,所以我们先确定两个点AB,然后再遍历所有点C,如果向量AB叉乘AC等于0代表共线(没说从哪里起飞) code #include<bits/stdc++.h> #define ll long long using namespace
阅读全文
摘要:原题链接 题解 叉积的运用,scanf控制输入格式 code #include<bits/stdc++.h> using namespace std; struct node { int x,y; }a[100005]; int x[200005],y[200005]; int main() { f
阅读全文
摘要:原题链接 题解 1.将雷达建在海岸线上最优,覆盖的面积最大 2.根据光线可逆,雷达安装的位置覆盖多少小岛,等价于小岛被覆盖需要在哪个范围的位置上安装雷达 3.想象把雷达安装在最左边,然后慢慢往右移,这个时候雷达覆盖的小岛数量会越来越多,当右移到某个原本能覆盖的小岛覆盖不了时,在那个位置安装一个雷达
阅读全文
摘要:原题链接 题解 这么优质的文章我写什么题解 好难解释必然性感觉像模拟?? code #include<bits/stdc++.h> using namespace std; int q[100005]={0}; struct node { double x,y; }a[100005]; double
阅读全文
摘要:原题链接 题解 想象一下,从左上角无限大的地方开始,第一个看到的一定是斜率最小的且截距最大的,慢慢往右下角滑,第一个碰到的直线一定是斜率比前一个小(不一定是第二小)的但是是它的斜率所属直线里截距最大的 重复上述步骤,最外面的直线一定长这样 图片来自luogu,linaonao 所以我们可以按斜率排序
阅读全文
摘要:原题链接 题解 1.最短路径一定可以表示成经过若干端点的线段,所以我们把端点单独提出来,这样就变成了计算几何形式的最短路 2.如果两个端点能相连,代表他们之间没有墙阻挡 code #include<bits/stdc++.h> using namespace std; int n; struct {
阅读全文
摘要:原题链接 教训 1.计算几何,能用乘法就不用除法 2.计算几何,开longlong 3.计算几何,注意直线的特殊性 code #include<bits/stdc++.h> #define ll long long using namespace std; struct node { ll x1,y
阅读全文
摘要:原题链接 题解 往内看,一个 n 个节点的多边形,最多能划分 n-2 个三角形(对于 ( k + 1 ) 个顶点的多边形,可以选择任意一个顶点,并引出一条条对角线把它分割成一个三角形和一个剩下的 ( k ) 边形。) 往外看,而在图中,如果两个关键节点的距离==2,ans++ code #inclu
阅读全文
摘要:原题链接 题解 对于点 \((a_1,b_1),(a_2,b_2)\) 的切比雪夫距离,可以看做成点 \((\frac{a_1+b_1}{2},\frac{a_1-b_1}{2}),(\frac{a_2+b_2}{2},\frac{a_2-b_2}{2})\) 的曼哈顿距离 不信你分类讨论看看 某一
阅读全文
摘要:原题链接 题解 看到“最大值”“曼哈顿距离”,我们不禁想到转换成切比雪夫距离之后求最大值 code #include<bits/stdc++.h> #define ll long long using namespace std; const ll inf=1e8; struct node { ll
阅读全文

浙公网安备 33010602011771号