由于下午的训练赛(主要是自己懒
今天的进程比较缓慢 做了几道水题
poj 1696
给你一些点 你从某一个点出发 只能向左转 并且不能穿过之前走过的轨迹
问你怎样走能经过最多的点并输出轨迹 n <= 50
做法就是枚举出发点
贪心 找左侧偏角最小的点前进 并记录路径
找一条最长的输出
用叉积判断方向 点积计算偏角 路径相交是规范相交
poj 1410
矩形和线段是否有交
只要注意矩形包括内部就行了
poj 1584
阅读题
步骤
1)判断一个多边形是不是凸多边形
各种复杂度的算法都有 可以绕着外侧像凸包一样判断边的关系 O(N)
或者枚举边判断所有点是不是在一侧O(N^2)
2)圆心是不是在多边形内部
向上一篇提到的 在凸多边形中 与各顶点叉积方向一样即可
3)圆是不是和多边形交
计算圆到各线段上点的最短距离判断 用上一篇中的CrossVP即可
poj 2074
计算最大连续可视范围
观测点和障碍物连线 再求与待测线段的交点
将交点扫一遍 得到若干覆盖区域 在未覆盖区域里找连续的最大即可
有一个trick = = 那就是障碍物不一定在观测点和待测区域之间 不管这种就好
感觉就是写完离AC总是差一步
这种题目中的trick还要多积累 少走些弯路
明天目标:
一部分还剩三题左右 明天完成
在明天开始凸包练习