HDU 3845 凸包
来源:互联网 发布:关于网络诈骗的新闻 编辑:程序博客网 时间:2024/05/17 04:19
#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<algorithm>#include<cmath>#include<queue>#include<map>#include<set>using namespace std;#define mxn 1020#define inf 0x3f3f3f3f#define eps 1e-8#define LL long long #define ull unsigned long long#define MP make_pair#define For( i, x, y ) for( int i = x; i <= y; ++i )int zero( double x ) {if( fabs( x ) < eps )return 0;return x < 0 ? -1 : 1;}struct point{double x,y;void input() {scanf( "%lf%lf", &x, &y );}point() {}point( double _x, double _y ) {x = _x, y = _y;}double len() {return sqrt( x * x + y * y );}point operator - ( const point b ) const {return point( x - b.x, y - b.y );}point operator + ( const point b ) const {return point( x + b.x, y + b.y );}bool operator < ( const point b ) const {if( zero( x - b.x ) )return x < b.x;return y < b.y;}}p[mxn], ch[mxn];double cross( point a, point b ) {return a.x * b.y - a.y * b.x;}double pnttoline( point a, point b, point c ) {double ret = fabs( cross( b - a, c - a ) );return ret / ( a - b ).len();}int n;int Ch() {int m = 0;For( i, 0, n - 1 ) {while( m > 1 && cross( ch[m-1] - ch[m-2], p[i] - ch[m-2] ) <= 0 )m--;ch[m++] = p[i];}int k = m;for( int i = n - 2; i >= 0; -- i ) {while( m > k && cross( ch[m-1]- ch[m-2], p[i] - ch[m-2] ) <= 0 )--m;ch[m++] = p[i];}if( n > 1 ) --m;return m;}int main() {int cas = 1;while( scanf( "%d", &n ) && n ) {For( i, 0, n - 1 )p[i].input();printf( "Case %d: ", cas++ );sort( p, p + n );int m = Ch();double mi = inf;For( i, 0, m - 2 ) {double ma = 0;For( j, 0, m - 1 ) {ma = max( ma, pnttoline( ch[i], ch[i+1], ch[j] ) );}mi = min( mi, ma );}double ma = 0;For( j, 0, m - 1 ) {ma = max( ma, pnttoline( ch[0], ch[m-1], ch[j] ) );}mi = min( mi, ma );printf( "%.2lf\n", mi );}return 0;}
0 0
- HDU 3845 凸包
- 【凸包】hdu 3285
- 凸包---HDU 2202
- hdu 4946(凸包)
- hdu 5251(凸包)
- HDU 1348 (凸包)
- HDU 4946 (凸包)
- Hdu 4667 凸包
- 凸包 hdu 1348
- HDU 1392 HDU 1348 凸包
- HDU 2108 Shape of HDU(凸包)
- HDU 2108 Shape of HDU [凸包.判断凸包]
- hdu 1392 模板凸包
- hdu 1392 凸包问题
- HDU Wall(凸包)
- hdu 1392凸包周长
- HDU-1348 Wall 凸包
- Hdu 4946 <几何+凸包>
- uva 1292 - Strategic game(树形dp)
- 正则表达式基础
- UVA 1291 - Dance Dance Revolution(dp)
- Linux内核页表初始化
- HDU2011
- HDU 3845 凸包
- OpenCV学习记录3//仿射变换与重映射
- 基于Linux的TCP网络编程
- Spring Trigger
- php学习笔记-数据类型、分支流程、数组等
- coroutine
- Flex中的FusionCharts 3D饼图
- android,应用程序与进程
- C指针原理(96)-C基础综合应用