---------------------计算几何
hxer
这个作者很懒,什么都没留下…
展开
-
poj 2187 Beauty Contest
poj 2187 Beauty Contest题意:给你一个数据范围在2~5e4范围内的横纵坐标在-1e4~1e4的点,问你任意两点之间的距离的最大值的平方等于多少? 一道卡壳凸包的模板题,也是第一次写计算几何的题,就看了些模板,关于预备知识;我是直接找到左下角的点,排好序之后,就直接形成凸包,之后调用rotating_calipers()求解;里面注意在凸包构造好之后,因为是++top的,所以在原创 2016-01-20 15:14:01 · 290 阅读 · 0 评论 -
codeforce #339(div2)C Peter and Snow Blower
Peter and Snow Blower题意:有n(3 <= n <= 100 000)个点的一个多边形,这个多边形绕一个顶点转动,问扫过的面积为多少?思路:开始就认为是一个凸包的问题,像poj2187求点对平方的最大值一样,但是有一个点是确定的(ps:这道题在div1里面可是A啊!这么复杂?),所以直接求解即可,时间复杂度也就O(n);还有就是怎么求多边形到确定点的最小距离呢?这就不只是暴力求点原创 2016-01-20 20:52:16 · 342 阅读 · 0 评论 -
poj 1113 Mall
poj 1113 Mall水题:注意题目上面有一个至少离城堡的距离为L,其实思考一下就知道是指离凸包(凸多边形)的距离为L,这时很容易知道外围的圆的圆心角叠加之后就是一个整圆;和poj2187一样使用graham形成凸包;#include<iostream>#include<cstdio>#include<cstring>#include<string.h>#include<algorith原创 2016-01-20 16:11:10 · 366 阅读 · 0 评论 -
poj 2318 TOYS
poj 2318 TOYS思路:这道题很水,只是要知道会使用叉乘来表示点在线的上面还是下面; 当a.Xmult(b,c) < 0时,表示在线的上面。之后就是二分的时候,不能直接使用mid来ans[mid]++;因为只是确定点在这条线的两边,到底是哪一边,具体还要用tmp来判断;(模板题)#include<iostream>#include<cstdio>#include<cstring>原创 2016-01-21 21:56:03 · 289 阅读 · 0 评论 -
poj 2398 Toy Storage
poj 2398 Toy Storage题型与2318 TOYS一样,注意要对线段排序,现在模板又更新了~~“`#includeincludeincludeincludeincludeincludeincludeincludeincludeincludeincludedefine MS0(a) memset(a,0,sizeof(a))const int MAXN = 1050; struc原创 2016-01-21 23:15:52 · 251 阅读 · 0 评论 -
poj 3304 Segments
poj 3304 Segments题意:给你100以内的n条线段,问你是否存在一条直线,使得题给的线段在这条直线上的“投影” 相交于一点;思路: 1.先要将线段投影相交于一点转变为存在一条直线与所有的线段相交; 很自然的想到,当存在一条直线使得所有的线段的投影都相交于一点时,过这点与该直线垂直的直线必定与所有的直线相交;2.如何判断这样的直线是否存在呢?** 假设这样的直线存在,则这条直线原创 2016-01-22 11:51:54 · 500 阅读 · 0 评论 -
Educational Codeforces Round 1 C. Nearest vectors
C. Nearest vectors题意:输入1e5范围内的点,每个点表示原点到该点的向量,并且向量的编号就是输入的序号(从1开始);原本一道很水的题,就不贴了,但是这道题的坑点真是2333,坑精度。。使用double被被人hack了几次,不贴出来难解心头之恨啊。。。思路:使用atan2(y,x)来得到与原点的夹角(范围为-PI~PI,即y > 0时,表示逆时针否则为负的顺时针),long do原创 2016-01-23 11:31:51 · 316 阅读 · 0 评论