题意:平面上有n个点,求一条直线使得所有点都在直线的同一侧。并求这些点到直线的距离之和的最小值。分析:只要直线不穿过凸包,就满足第一个条件。要使距离和最小,那直线一定在凸包的边上。所以求出凸包以后,枚举每个边求出所有点到直线的距离之和得到最小值。点到直线距离公式为:因为点都在直线同一侧,所以我们可以...
分类:
其他好文 时间:
2014-10-20 00:43:41
阅读次数:
307
题意:有n块互不重叠的矩形木板,用尽量小的凸多边形将它们包起来,并输出并输出木板总面积占凸多边形面积的百分比。分析:几乎是凸包和多边形面积的裸题。注意:最后输出的百分号前面有个空格,第一次交PE了。用printf打印%,可以连续打印两个%%,printf("%%\n"); 这个冷知识记得以前学过,不...
分类:
移动开发 时间:
2014-10-18 16:40:28
阅读次数:
235
题目大意:给出一些笛卡尔系中的一些直线,问从(0,+∞)向下看时能看到哪些直线。
思路:半平面交可做,但是显然用不上。类似于求凸包的思想,维护一个栈。先将所有直线按照k值排序,然后挨个压进去,遇到有前一个交点被挡住的话就先弹栈。
比较闹心的是去重。我的方法是压栈之前先去重,然后在处理。
CODE:
#include
#include
#include
#inclu...
分类:
其他好文 时间:
2014-10-17 18:54:42
阅读次数:
153
Min-Max
Time Limit: 1000MS
Memory Limit: 65536K
Total Submissions: 2192
Accepted: 502
Description
Define the following function
Given the value C of F(p1, p2 ......
分类:
其他好文 时间:
2014-10-14 14:38:58
阅读次数:
186
求能够完全包含平面上n个给定点的凸多边形。这个问题一般使用快包算法。快包思想:1)将n个点按照x左边进行排序,找到P1和Pn,直线P1->Pn将平面上的点分为两部分S1和S2,成为上包和下包,递归的求解这两部分。2)如何求S1和S2,这两部分算法一样,以S1为例。如果S1为空,上包就是一P1和Pn为...
分类:
编程语言 时间:
2014-10-14 13:12:58
阅读次数:
300
题目大意:给定一个序列,可以分割k次,每次分割的得分为两段序列的和的乘积 求最大得分
首先我们可以推出序列的分割顺序是不影响得分的 比如说我要把一个序列分割成四份ABCD 我先分割A BCD或者先分割AB CD最后的得分是一样的
证明?嗯……易证。显然嘛。哈哈。好吧我不会证。。。自己画一下推推就好
好吧这是神犇的证法:比如我将ABCD分割为AB CD 那么A就和CD各乘了一次 B也和CD各乘...
学渣乱搞系列之dp斜率优化 By 狂徒归来 貌似dp的斜率优化一直很难搞啊,尤其是像我这种数学很挫的学渣,压根不懂什么凸包,什么上凸下凸的,哎。。。说多了都是泪,跟wdd讨论了下,得出一些结论。本文很大部分参考了大神Accept的文章,不过此神貌似早已绝迹江湖,这篇文章写得好,也...
分类:
其他好文 时间:
2014-10-11 23:13:36
阅读次数:
385
给定平面上的一些散点集,求最远两点距离的平方值。平面上的散点集的最远的两点距离必然在这个散点集的凸包的某两个顶点上出现。之后枚举凸包所有的点对,找出最大的即可。如果用旋转卡壳,那么速度比较快。旋转卡壳可以用于求凸包的直径、宽度,两个不相交凸包间的最大距离和最小距离#include#include#i...
分类:
其他好文 时间:
2014-10-09 16:24:47
阅读次数:
169
按照顺时针或逆时针方向输入一个n边形的顶点坐标集,先判断这个n边形是否为凸包。再给定一个圆形(圆心坐标和半径),判断这个圆是否完全在n变形内部。1、判断凸包:由于点集已经按某个时针方向有序,因此可以先定义一个方向系数direction=0两两枚举n边形的边,用叉积判断这两条边的转向(右螺旋或左螺旋)...
分类:
其他好文 时间:
2014-10-09 14:51:03
阅读次数:
248
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1348WallTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission...
分类:
其他好文 时间:
2014-10-09 00:32:37
阅读次数:
474