摘要: 很容易发现这是一道计算几何的题目,所谓最短路只是个幌子罢了,关键是如何建出可以做最短路算法的图,而后,随意套一个最短路算法模板就可以搞定。 同样,很容易由一个公理——两点间直线距离最短——推导出适合这道题用的结论:最短路一定是一条经过若干矩形顶点的折线。即使是贴着矩形边行进,也可以理解为连接该矩形边两端点的线段路线。那么,事情就清楚了,枚举可以连接直线的各对(矩形)顶点,包括起始点和结束点,这样就有了“路”。 枚举顶点对是容易的,题目的主要内容在于判定顶点对之间是否可以连线,也即判断这条直线段会否穿过某一矩形内部。问题演变为线段与矩形的严格相交问题。处理这个问题,模板多了去了,但是秉持着全盘手打的自虐心态,我还是尝试了下自己手敲(尽情鄙视我吧,在计算几何上我就是个战斗力不足5的渣~~)。 线段与矩形的严格相交问题一般分为三步: 1、线段端点是否在矩形内,若在,则比相交(说相交有些不恰当,总之不合法就是了); (1.5、矩形是否在线段所属直线的同一侧) 2、线段是否与矩形四边中任一边严格相交;   阅读全文
posted @ 2013-05-04 13:16 南邮ACM爱好者协会 阅读(2171) 评论(0) 推荐(0)