摘要: http://poj.org/problem?id=1113题意是给定一个城堡的各个点,然你求出设计一个城墙,包围这个城堡并且保证城墙距离城堡必须大于等于一个给定的距离:首先是利用图报求出最小的包围城堡的凸多边形,然后求出距离,然后再加上一个整圆就OK了,圆的半径就是给定的距离:(整个思路相当于把凸多边形各个边往外移动距离R,此后连接各边的弧组成一个以R为半径的整圆);到此终于把POJ计划的初级阶段刷完了...纪念一下。。#include <cstdio>#include <cstring>#include <iostream>#include <al 阅读全文
posted @ 2012-06-08 17:49 E_star 阅读(272) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=2187给定平面上的一群点求任意两点的最远距离,如果枚举任意两点的话复杂度为o(n^2),在这里肯定超时。可以利用凸包将点的范围缩小到凸包的顶点上再循环枚举任意两点,这里最坏情况也为O(n^2)。不过这里貌似可以过的。另一种方法就是旋转卡壳法了,意思就是寻找任意边的最远点(凸包上的顶点),然后计算该点到两端点的最远距离即可。旋转卡壳法 学习:http://www.cppblog.com/staryjy/archive/2009/11/19/101412.html#include <cstdio>#include <cstri 阅读全文
posted @ 2012-06-08 16:59 E_star 阅读(252) 评论(0) 推荐(0) 编辑