给出点集,和不大于L长的绳子,问能包裹住的最多点数。 考虑每个点都作为左下角的起点跑一遍极角序求凸包,求的过程中用DP记录当前以j为当前末端为结束的的最小长度,其中一维作为背包的是凸包内侧点的数量。也就是 dp[j][k]代表当前链末端为j,其内部点包括边界数量为k的最小长度。这样最后得到的一定是最 ...
分类:
其他好文 时间:
2017-09-28 00:30:37
阅读次数:
445
凸包,算是计算几何的知识了,今天补了一发。 在一个平面坐标系上有n个点,用笔画一个多边形,使得多边形包含这n个点(点在多边形的边上也算包含)。求多边形的最小周长。 这就是要你求一个凸包的周长。 那我们如何得到一个凸包的所有顶点呢?可以发现,这个凸包肯定是用部分给出的顶点连接,包含其他全部的点。具体的 ...
分类:
其他好文 时间:
2017-09-27 21:49:30
阅读次数:
119
题目链接 题意:给出n个点。用两种颜色来给每个点染色。问能否存在一种染色方式,使不同颜色的点不能被划分到一条直线的两侧。 题解:求个凸包(其实只考虑四个点就行。但因为有板子,所以感觉这样写更休闲一些。)。如果不是所有点都在凸包上,那么把凸包上的点染成颜色1,内部的点染成颜色2;如果是所有点都在凸包上 ...
分类:
其他好文 时间:
2017-09-23 21:17:47
阅读次数:
151
#include <iostream> #include <cmath> #include <cstdio> #include <cctype> #include <cstdlib> #include <cstring> #include <climits> #include <set> #incl ...
分类:
其他好文 时间:
2017-09-23 18:44:35
阅读次数:
394
前言: 首先,什么是凸包? 假设平面上有p0~p12共13个点,过某些点作一个多边形,使这个多边形能把所有点都“包”起来。当这个多边形是凸多边形的时候,我们就叫它“凸包”。如下图: 然后,什么是凸包问题? 我们把这些点放在二维坐标系里面,那么每个点都能用 (x,y) 来表示。 现给出点的数目13,和 ...
分类:
其他好文 时间:
2017-09-23 15:28:29
阅读次数:
212
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1007 可以发现题目求的就是一个下凸包,把直线按斜率排序,再来维护凸包就好了。可以发现下凸包上的拐点横坐标单增。同时注意处理斜率相同的直线的情况。 ...
分类:
其他好文 时间:
2017-09-19 19:47:43
阅读次数:
138
1185: [HNOI2007]最小矩形覆盖 Description 思路{ 先求凸包,发现矩形的一条边一定与凸多边形的一条边重合. 用类似旋转卡壳的方式即可求出对于这条边为底,最左端的点,最右端的点,最远的点, 这样直接更新答案就可以了. } #include<bits/stdc++.h> #de ...
分类:
其他好文 时间:
2017-09-05 01:44:07
阅读次数:
174
[吐槽] 嗯一开始接触到这个东西其实是因为某道凸包的题目好像可以用这个奇妙的方法来算 但其实了解也不是很深,只是觉得这个东西十分有意思, 所以先稍微写一下自己的想法,了解更多之后慢慢完善 [正题] 首先这个公式是长这样的: 取一个二次函数上(嗯。。貌似是这样的)的一段区间,左端点为$(l, hl)$ ...
分类:
其他好文 时间:
2017-08-27 22:29:41
阅读次数:
245
一、简介 二、绘制点集的凸包 三、绘制轮廓的凸包 ...
分类:
其他好文 时间:
2017-08-24 21:17:19
阅读次数:
308
平面上n个点,两个人交替决策,用线段连接两个点,但不能跨越其他点或者已经存在的线段。不能做的人算输,问你谁赢。 实际上,跟两个人的决策无关,n个点将平面三角剖分,只需要算出有几条边即可。 凸包上如果有K个点,那么图中那K-1条实边每条贡献一个三角形。 凸包内其他的边,每条贡献2个三角形。除了最中心那 ...