
计算几何
文章平均质量分 80
nlj1999
这个作者很懒,什么都没留下…
展开
-
POJ2187 Andrew凸包+旋转卡壳
浏览(水了水)网上各种凸包和旋转卡壳的讲解,然后来水这道模板题,结果被坑死了。。。。。。。我的模板里是double类型的,放到POJ上狂WA(输出用的%.lf,末尾没0啊),于是很愤慨地改成了整型,A了,科学何在啊。凸包什么的还是比较简单的(吧),想当年学的时候看学堂在线的讲解,想想也是醉人啊,从n^4到n^3到n^2再到nlogn,顺便讲了下规约(reduction),尽管现在我都不知道原创 2016-01-09 16:44:17 · 380 阅读 · 0 评论 -
BZOJ 4515: [Sdoi2016]游戏
树链剖分将每次更新拆成若干条链上关于depth的一次函数于是就变成了线段树维护半平面交中x轴上一段区间的y最小值考虑每个点代表一条覆盖整个区间的直线,以此来进行标记永久化若两个标记,即两条直线覆盖了同一区间Case 1:其中一个标记处处比另一个优,那么显然取优的那个Case 2:在该区间中有交点,于是取更优区间较大的那个为此区间的标记,另一个递归到相应的区间去继续更新由原创 2016-05-18 19:49:54 · 615 阅读 · 0 评论 -
BZOJ 2961: 共点圆
突然想起来论文还没刷完QAQ简直智障2013年xhr论文卡斜率的时候用点积#include#include#include#include#includeusing namespace std;#define rep(i,l,r) for(int i=l;i<=r;i++)#define per(i,r,l) for(int i=r;i>=l;i--)#define m原创 2016-05-11 13:22:13 · 639 阅读 · 0 评论 -
BZOJ 3571: [Hnoi2014]画框
一看TM就不会做赶紧学了一发最小乘积生成树和最小乘积最大匹配大概就是把每个完备匹配后的结果看成一个点(sigma(a),sigma(b)),发现答案都在下凸壳上,然后用分治递归找下凸壳就好了。首先找到下凸壳两端的点(横坐标最小和纵坐标最小的两个点),然后连线,找到离线最远的点(叉积推公式,KM/费用流找匹配),然后分治,直到最远的点就是两点之一了,也就是两点是下凸壳上相邻的两点。(原创 2016-04-10 09:54:59 · 393 阅读 · 0 评论 -
BZOJ 1209: [HNOI2004]最佳包裹
一眼扫过去,凸包?数据范围什么这么小?10分钟码完了Andrew,发现答案不对……卧槽怎么是三维的。。。。。。。三维凸包不会啊TAT对着白书抄了一遍增量法,水过去了(你这样真的好吗)好吧回去再看一遍增量法,感觉很好玩的样子。很想知道status里0MS的大爷是怎么做到的(随机增量?)#include#include#include#include#include原创 2016-03-28 11:33:54 · 622 阅读 · 0 评论 -
BZOJ 1199: [HNOI2005]汤姆的游戏
近9S左右的龟速QAQ竟然过了本来还写了个线段树处理矩形的情况的,结果好像跪了。于是弃疗写暴力。用队列维护一下当前矩形/圆的x范围内的点,然后对每个点暴力判断是否在矩形/圆内。O(n^2)#include#include#include#include#includeusing namespace std;const int N=250000+5;const do原创 2016-03-27 13:27:28 · 499 阅读 · 0 评论 -
BZOJ 2732: [HNOI2012]射箭
首先分析一下题目设抛物线为y=a*x^2+b*x然后就是看是否存在a,b满足条件了即y1所以就是半平面交了二分判断一下就……卡精度了QAQ所以要用long double不过判断半平面交是否为空集好像有期望O(n)的随机增量法,但是我不会啊#include#include#include#include#includeusing namespace std;原创 2016-04-08 10:54:25 · 752 阅读 · 0 评论 -
BZOJ 2731: [HNOI2012]三角形覆盖问题
VFK大爷太神辣%%%%%%%%神犇就是厉害,从小就会暴力过题#include#include#include#includeusing namespace std;const int N=10000+5;struct tri{ int x,y,d,l,r; bool operator < (const tri &rhs)const{ return y<rhs.y;原创 2016-04-07 21:11:52 · 922 阅读 · 0 评论 -
BZOJ 2338: [HNOI2011]数矩形
先处理出一共O(n^2)条线段然后找出长度相等,中点重合的线段,更新答案即可事实上这么做极端情况下会被卡成n^3的复杂度,不过数据没有特殊构造还是能过的(其实是我也不会其他方法了)#include#include#include#includeusing namespace std;typedef long long ll;const int N=1500+5;ll sq原创 2016-04-06 15:35:58 · 315 阅读 · 0 评论 -
BZOJ 1185: [HNOI2007]最小矩形覆盖
做着做着卡住了。。。。。。本来以为是三分的,结果发现错了。。。。。这题不仅要枚举精度,还要枚举做法QAQ或者说是我太弱了,根本没想到旋转卡壳。第一次知道旋转卡壳还可以这么玩,左卡卡,右卡卡,上卡卡,哎然后一个矩形就卡好了。听说SPJ很好玩的样子233333#include#include#include#include#includeusing namespace原创 2016-03-21 16:57:18 · 588 阅读 · 0 评论 -
BZOJ 3564: [SHOI2014]信号增幅仪
看了一上午平面图最短路的论文还是没看懂很想知道旅行者那题出成在线的要怎么做(离线的你都不会好不好)然后发现老师发了个压缩包过来。咦,14年的SH省选题还有数据,果断开坑。话说第一题是考高中数学吗。。。。。。最小椭圆覆盖和最小圆覆盖差不多就是要推几个公式40+min码完是不是慢了点话说竟然1A了真神奇#include#include#include#原创 2016-03-29 16:15:04 · 521 阅读 · 0 评论 -
1027: [JSOI2007]合金
好像湖南集训的时候见过这题(???)首先第三维我吃了,因为可以从前两维算出,就不用管了。然后考虑两种合金的情况。x.a*λ+y.a*μ=z.ax.b*λ+y.b*μ=z.b(λ+μ=1)有木有好熟悉的感觉啊,没错,点在直线上啊。不过这题是点在线段上。然后我们推而广之。就变成了点在多边形内。于是求一个最小的多边形(一定是凸的)使之包含所有点(需要的合金)。原创 2016-01-19 21:33:51 · 720 阅读 · 0 评论 -
1069: [SCOI2007]最大土地面积
准备开始BZOJ补完计划了。话说终于可以切计算几何了,好开森。虽然这题确实很简单。。。。。第一眼就看出来 凸包+旋转卡壳没跑了。先求凸包。然后在旋转卡壳的时候,每次求出一对对踵点,在连线的左侧和右侧各找一个最远点,四个点构成的可能是最大面积,求一下更新。具体证明什么的??????不会(。・_・。)ノ#include#include#include#includ原创 2016-01-19 20:38:59 · 958 阅读 · 0 评论 -
BZOJ 4520: [Cqoi2016]K远点对
BZOJ AC 300 纪念!!!做K次凸包,每次旋转卡壳找到一对最远点,删掉他们并把他们构成的点对加入候选集合于是候选集合的大小为O(nk)的总复杂度O(nklogn)(好像会T)#include#include#include#include#include#include#include#include#include#define rep(i,l,r)原创 2016-05-19 21:52:36 · 368 阅读 · 0 评论