首页 > 代码库 > 计算几何学习3
计算几何学习3
完成了题表中的前三部分
(由于二、三部分的内容比较少
一。
poj 2826
用两条木板来盛雨水 问能接到多少
线段交 分类讨论
1)只要有一条水平 就不能盛水
2)没有交点 不能盛水
3)有交点 但是交点水平上方 没有分别两个端点不能盛水
4)*有两个端点 但是上侧长的一根覆盖了另一条短的 不能盛水
如果都能满足 就利用交点 算一个三角形面积即可
**学习到最后输出浮点数可以 ans + eps 防止出现 - 0.000的情况 或者需要特判一发
poj 3347
给出一种放置正方形序列的方式(两条边与x轴呈45度夹角 一个顶点落在x轴上) 按顺序放置
并规定放置规则 落在x上的顶点尽量靠左 且不和前面任何一个正方形相交 问放完后 有多少正方形能从上面被看到
先乘 根号二 将坐标化为整数
之后其实就是线段覆盖问题 每个正方形有用的只有放置顶点 和 左右边界
每个正方形只会被边长比他大的覆盖
最后找有哪些未被完全覆盖即可
*初始化错了一发
二 。凸包(未包含旋转卡壳
验证了一发 凸包板子 和 极角序板子
除了模板题 剩下的题有
poj 1873
二进制枚举 加 凸包 (学习到四舍五入的方法= = (int) (x + 0.5) int 正实数是去零的)
poj 1228
难在理解题意
原来有一些点组成一个凸多边形, 现在一些点消失了, 只知道剩余点,
问利用剩余的点能否唯一确定出那个凸多边形
怎样才能唯一确定?
凸包时首先要求的 两点可以确定出一条直线
但是由于一些点消失了 可能会在两外原来有点 从而使图形不唯一
因此 若凸包每条边上都至少有三个点 就可以确定了(再加点就不能保证凸了)
注意所有点共线的情况不行
三。面积
(这里就是多边形求面积 = = 用叉积吧)
学习到的有用的是网格图上pick公式
S = a + b / 2 - 1;
S是多边形面积
a是多边形内部网格点的数目
b是多边形边界网格点的数目
b可以用每条边的向量的gcd来求
poj 1265用到了这个
然后看了看白书上的相关内容
感觉比写的题要经典
明天准备开半平面交了
考虑到训练赛
预定是学习一下姿势 先写写模板题
nlogn的尽量看
计算几何学习3