求半径d<=50000的圆(不含边界)内n<=50000条直线有多少交点,给直线的解析式。 一开始就想,如果能求出直线交点与原点距离<d的条件,那么从中不重复地筛选即可。然而两个kx+b联立起来加勾股定理特别丑。。 换个想法,一条线在圆上就截了两个点。把这些点做极角排序后(即从y轴正半轴的射线顺时针 ...
分类:
其他好文 时间:
2017-10-01 18:10:28
阅读次数:
229
给出点集,和不大于L长的绳子,问能包裹住的最多点数。 考虑每个点都作为左下角的起点跑一遍极角序求凸包,求的过程中用DP记录当前以j为当前末端为结束的的最小长度,其中一维作为背包的是凸包内侧点的数量。也就是 dp[j][k]代表当前链末端为j,其内部点包括边界数量为k的最小长度。这样最后得到的一定是最 ...
分类:
其他好文 时间:
2017-09-28 00:30:37
阅读次数:
445
Description 在一只大灰狼偷偷潜入Farmer Don的牛群被群牛发现后,贝西现在不得不履行着她站岗的职责。从她的守卫塔向下瞭望简直就是一件烦透了的事情。她决定做一些开发智力的小练习,防止她睡着了。想象牧场是一个X,Y平面的网格。她将N只奶牛标记为1…N (1 <= N <= 100,00 ...
分类:
编程语言 时间:
2017-09-26 22:29:06
阅读次数:
316
极角排序 先开始想了很多分割方法,发现都不对,最后觉得只能极角搞搞,就看了答案 我们发现,一个点的原点构成的直线把平面分成了两半,那么只由一边点和这个点构成的三角形肯定不包含原点,那么我们按极角排序,然后计算右边有多少点C(x,2)就行了。因为一个三角形有三个点,枚举到中间那个点的时候这个三角形不会 ...
分类:
其他好文 时间:
2017-08-26 14:20:13
阅读次数:
107
题目链接 题意:二维平面上有n个点(没有重叠,都不在原点,任意两点连线不过原点),每个点有一个权值,用一条过原点的直线把他们划分成两部分,使两部分的权值和的乘积最大。输出最大的乘积。 极角排序后,将原来(-pi,pi]区间的元素copy到(pi,3pi],用双指针维护一个角度差不超过pi的区间,记区 ...
分类:
其他好文 时间:
2017-08-24 22:42:02
阅读次数:
146
今天上午再补题,计算几何,看了一下对于极角排序的四种方式:叉积,complex类,atan2()函数,象限四种。 再就是看了五道数学题,容斥,积分,欧拉函数,对了今天还有莫比乌斯反演没看。中午吃过饭就开始,打比赛了,题目是真的长,按照前几场的惯例1011是水题,结果半小时过去了,还是没有队伍提交,恐 ...
分类:
其他好文 时间:
2017-08-17 22:52:19
阅读次数:
207
平面上n个点,每个点带权,任意两点间都有连线,连线的权值为两端点权值之积。没有两点连线过原点。让你画一条过原点直线,把平面分成两部分,使得直线穿过的连线的权值和最大。 就把点极角排序后,扫过去,一侧的点会跨过直线与另一侧的所有点形成连线。此时的答案为两侧的权值和之积,尝试用此更新最终答案。 ...
分类:
编程语言 时间:
2017-08-17 00:45:01
阅读次数:
227
acm.hdu.edu.cn/showproblem.php?pid=6127 【题意】 给定平面直角坐标系中的n个点,这n个点每个点都有一个点权 这n个点两两可以连乘一条线段,定义每条线段的权值为线段两端点点权的乘积 现在要过原点作一条直线,要求这条直线不经过任意一个给定的点 在所有n个点两两连成 ...
分类:
编程语言 时间:
2017-08-16 21:50:32
阅读次数:
220
第一次写水平序凸包,感觉跟极角序凸包差不多 凸包的删除看上去不太可做,但我们发现这题没有强制在线,所以我们离线统计答案 离线之后把操作反序,删除就变为插入了 用平衡树维护凸包,每插入一个点,就不停删除它左右两边不满足凸包性质的点 每个点只会被插入删除各一次,不会超时 ...
分类:
其他好文 时间:
2017-08-16 15:20:17
阅读次数:
111
题意:给定 n 个点,和权值,他们两两相连,每条边的权值就是他们两个点权值的乘积,任意两点之间的直线不经过原点,让你从原点划一条直线,使得经过的直线的权值和最大。 析:直接进行极角扫描,从水平,然后旋转180度,就可以计算出一个最大值,因为题目说了任意直线不是经过原点的,所以就简单了很多,每次碰到的 ...
分类:
其他好文 时间:
2017-08-15 19:45:23
阅读次数:
123