计算几何
图一乐图一乐
这个作者很懒,什么都没留下…
展开
-
poj(旋转卡壳求凸包中最大三角形)
思路:我们知道在旋转卡壳的过程中会有这样的一个东西:在枚举对种点时,我们发现固定一个线段,然后枚举另一个点,那么有向三角形的面积的递增的,这里不是固定一条线段,但是我们还是可以这么想,先固定a,b,c三个点,然后旋转c,爬山法求最大面积,然后旋转b,再爬山法求最大面积。/*#include<bits/stdc++.h>#include<unordered_map>#include<unordered_set>*/#include <map>#inc原创 2021-03-29 14:27:55 · 195 阅读 · 0 评论 -
poj Disks(思维细节好题)
题意:给你n个圆的半径,让你依次在x和y正半轴展开,求移去哪些圆不会使得这个整体的结构发生左移并且不会改变整个结构的宽度。思路:这道题我一共交了27发才过,细节贼多。总体的来说的话有这么几个点,首先我们可以知道的是画出两个圆自然相切时的的转态,发现后面的圆的坐标是前面圆的x坐标+sqrt((r1+r2)∗(r1+r2)+(r1−r2)∗(r1−r2))x坐标+sqrt((r1+r2)*(r1+r2)+(r1-r2)*(r1-r2))x坐标+sqrt((r1+r2)∗(r1+r2)+(r1−r2)∗(r1−原创 2021-03-28 18:28:59 · 107 阅读 · 0 评论 -
P3222 [HNOI2012]射箭(二分+半平面交)
#include<bits/stdc++.h>#include<unordered_map>#include<unordered_set>#define f(i,a,b) for( int i=a;i<=b;++i)#define ff(i,a,b) for( int i=a;i>=b;--i)#define debug(x) cerr << #x << " : " << x << " " <&l原创 2021-03-10 15:59:12 · 233 阅读 · 0 评论 -
P3493 [POI2009]WSP-Island(贪心,半平面交)
题意:给出一个凸包(顺时针),然后初始化下,凸包上任意两点都是有路径的,现在给出m次被封锁的路径,求在不经过这些被封锁的路径(可以在交叉路口经过这个点),求从1号点到n号点的最路径。思路:认真画个图可以发现,最优情况都是尽量走内侧,也就是尽量走向编号的大的,那么就预处理出每个点可以到达的编号最大的点,那么对每条(当前点–>可以直接达到的编号最大的点)求半平面交,就求出了答案。其中有一种情况需要特判,就是1号点可以直接到达n号点,在这种情况下会出现半平面交无限大的情况。#include<bit原创 2021-03-06 12:11:29 · 137 阅读 · 0 评论