![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
几何
CQU_HYX
软件算法专精
展开
-
HDU 3021题解
因为树的收益超过了木桩消耗的三倍,所以如果有树能够被围住,那么把这个树围住收益肯定最优。 所以先来一次凸包求出木桩最大维护多边形。然后枚举树,把在多边形内的树添加到inS里面,接下来就是找到包围inS集合里面所有树的最小环了。我们发现规定方向就可以用floyd找到最小环,我在这里规定逆时针方向为正,在原来木桩的点的集合,任取两个点出来,如果i -> j边在inS里面所有点的右边,或者点在边上,就连原创 2015-12-22 08:49:47 · 504 阅读 · 0 评论 -
codeforces 257C解题报告
这破题,开始不知道是算法挂了,和正确答案的差距很小,还以为是精度不够。。题意:有个初始的坐标(0, 0) 然后有n个人的坐标(xi, yi) 你的任务就是求出最小的扇形的角度,覆盖所有的人,扇形r无限大一开始直接atan2(y, x)求出角度,然后加PI排个序,最大减最小输出,wa到死。这题该先存下角度,然后排个序,在枚举最接近的两个点,假设这两个点之间的扇形区域就是我们求的区域的补,那么只需原创 2016-01-22 23:17:12 · 358 阅读 · 0 评论 -
UVA10456 解题报告
。。也不知道是第几次写这种OJ没人提交,题解搜不到的题了。。 这个题 一开始想法很简单,对于一个点p,找到临界点p1, p2,然后设要求的点 为k 则k = p1 + (p2 - p1) * t; 然后二分t的值,就行了。。 不过问题是,他么输出居然是分数。。 必须重新换个思路,还是要找到两个临界点p1, p2,然后把他看成一个三角形(p, p1, p2)剩余两部分被分割的面积都能算出来,原创 2015-12-06 22:07:52 · 424 阅读 · 0 评论 -
ZOJ3537 解题报告及总结
题目意思就是 给你一个多边形,先判断是否是凸包,然后再划分成一个一个三角形,求最小代价,两点之间画一条线的最小代价为 abs(xi + xj) * abs(yi + yj) % p才做的时候,想法是枚举划分的线,根据分治的思想,大的多边形拆成两个小多边形,然后记忆化,复杂度超高难写不说(因为要记录i节点的nxt节点编号,不停地变来变去),还不知道wa在哪。。后来想了下,既然最后一定是一个一个的三原创 2016-02-25 20:01:46 · 498 阅读 · 0 评论 -
2016多校联合第二场 HDU5741解题报告
题意:给你一个数组,v[i]v[i]表示:当i为偶数是表示0的个数,当i为奇数是表示1的个数。然后要你查询一堆区间,是否能找到某个区间[l,r][l,r]使得0的个数等于aa,1的个数等于bb题解说的很奇妙,涨了姿势。我们可以这么想,对于一个确定的aa,那么必然存在一段区间[bl,br][b_{l}, b_{r}]那就可以抽象成一连串离散的点集了(设a是横坐标,b是纵坐标设a是横坐标,b是纵坐标)上原创 2016-07-26 10:12:25 · 658 阅读 · 0 评论