随笔分类 - 计算几何
摘要:X.[POI2008]TRO-Triangles 本题介绍两种做法。 一种是我自己的做法: 考虑某$\triangle ABC$,\(2S_{\triangle ABC}=\Big|\vec{AB}\times\vec{AC}\Big|=\Big|(\vec{B}-\vec{A})\times(\v
阅读全文
摘要:IX.[ZJOI2008]瞭望塔 ZJOI2008咋总喜欢考这种计算几何的题啊…… 同我们的IV.监视摄像机[CTSC1998]一样,本题相当于求多边形的核,可以使用半平面交。但因为和VI.[HNOI2008]水平可见直线一样,所有半平面都是向上的,故直接求凸包即可。 发现求完凸包后,答案的横坐标一
阅读全文
摘要:VII.[BalticOI 2005] Polygon 题解
阅读全文
摘要:VI.[HNOI2008]水平可见直线 一开始以为这是半平面交模板;后来一想,直接求出凸包来就行了。 我们仍然将所有直线按照斜率从小到大排序。不过这时,我们只需要使用单调栈维护即可。 具体而言,设栈顶次位、首位直线分别为$y=k_1x+b_1,y=k_2x+b_2$ 则其交点位于 \(\Bigg(\
阅读全文
摘要:V.[NOI2004]降雨量 本题思路就和I.[HNOI2012]三角形覆盖问题差不多了。 首先,我们特判掉有长度为$W$的伞的情况——此时答案即为$0$。 否则,对于每一时刻,我们计算出下面三种情况中,最先来到的一个: 有一把伞撞到了边缘 有两把伞,它们的某两个边缘相遇了(不管是哪两个边缘) 时刻
阅读全文
摘要:IV.[CTSC1998]监视摄像机 这题就是半平面交模板。因为能看到一条边某侧的所有位置的一个点必定处于此边所在直线的内侧,故直接求半平面交即可。 另外,这题#5的第39个测试点似乎出了问题,得特判掉。 代码: #include<bits/stdc++.h> using namespace std
阅读全文
摘要:III.[CQOI2006]凸多边形 /【模板】半平面交 半平面交开始~~ 这里介绍一种做法:随机增量法,其可以在$O(n\log n)$的时间内完成半平面交的求解。 首先,我们可以用一个向量来表示直线;之所以使用向量来表示,是因为我们将强制该向量的左方表示半平面。 接着,我们考虑将所有直线按照向量
阅读全文
摘要:II.CF995C Leaving the Bar 两个$106$的向量求和/差,是无法做到结果必在$106$以内的;但是,如果是三个,就可以做到了。 考虑两个向量。则只有它们的夹角在$[\dfrac{2\pi}{3},\dfrac{4\pi}{3}]$之间时,可以做到。当有三个向量时,则至少存在一
阅读全文
摘要:I.[HNOI2012]三角形覆盖问题 扫描线问题是计算几何里面的一大重点……吗? 不管怎么说,这道题的确要使用扫描线解决。 具体来说,因为$n$只有$10000$,考虑使用$O(n^2)$的做法并加以剪枝。 我们首先将所有三角形按照顶点的$x$坐标递增顺序。接着,考虑用扫描线维护每一时刻与扫描线相
阅读全文
摘要:CXXXV.[ZOJ3989]Triangulation 神题。 这个数据范围很难不让人想到状压DP。于是我们考虑应该怎么设计状态。 考虑一组三角剖分的形态:其必定是在所有点所构成的凸包内部划分出很多三角形。这也就表明,任何一组三角剖分一定包含所有凸包上的边。 我们可以想到一个比较简洁的DP:设 \
阅读全文
摘要:XXXI.[CQOI2018]解锁屏幕 $n\leq 20$一眼状压。 设$f[i][j]$表示:访问状态为$i$,当前在$j$点的方案数。 我们枚举一个$k$,表示下一个要去的地方;要判断$j$能不能转移到$k$,还要枚举$l$,判断$j,k,l$是否共线。判断共线是基础向量,一次点积+一次叉积带
阅读全文

浙公网安备 33010602011771号