Wall--POJ1113(极角排序+求凸包)
http://poj.org/problem?id=1113
题目大意:现在要给n个点,让你修一个围墙把这些点围起来,距离最小是l
分析 :现在就是求凸包的周长然后再加上一个圆的周长

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<algorithm>
#include<iostream>
#include<queue> using namespace std;
#define N 1005
#define pi acos(-1.0)
#define ESP 1e-8 int s[N]; struct Point
{
double x,y;
Point(double x=,double y=):x(x),y(y){}
Point operator - (const Point &temp)const
{
return Point(x-temp.x,y-temp.y);
}
Point operator + (const Point &temp)const
{
return Point(x+temp.x,y+temp.y);
}
bool operator == (const Point &temp)const
{
return (x==temp.x && y==temp.y);
}
double operator * (const Point &temp)const
{
return (x*temp.x+y*temp.y);
}
int operator ^ (const Point &temp)const{
double t=x*temp.y-y*temp.x;
if(t>ESP)
return ;
if(fabs(t)<ESP)
return ;
return -;
}
}a[N]; double dist(Point a,Point b)
{
return sqrt((a-b)*(a-b));
} int cmp(Point a1,Point a2)
{
int t=((a1-a[])^(a2-a[]));
if(t==)
return dist(a1,a[])<dist(a2,a[]);
else
return t>;
}
int top;
void Graham(int n)///求凸包
{
s[]=;
s[]=;
top=;
for(int i=;i<n;i++)
{
while(top> && ((a[i]-a[s[top]])^(a[s[top-]]-a[s[top]]))<=)
top--;
s[++top]=i;
} } int main()
{
int n,l;
while(scanf("%d %d",&n,&l)!=EOF)
{
memset(s,,sizeof(s));
int k=;
for(int i=;i<n;i++)
{
scanf("%lf %lf",&a[i].x,&a[i].y);
if(a[i].y<a[k].y || (a[i].y==a[k].y && a[i].x<a[k].x))
k=i;
}
swap(a[],a[k]);
sort(a+,a+n,cmp); Graham(n);
double C=;
for(int i=;i<=top;i++)
{
C+=dist(a[s[i]],a[s[i-]]);
}
C+=dist(a[s[]],a[s[top]]);
C+=*pi*l;
printf("%.0lf\n",C);
}
return ;
}
Wall--POJ1113(极角排序+求凸包)的更多相关文章
- poj 1113:Wall(计算几何,求凸包周长)
		
Wall Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 28462 Accepted: 9498 Description ...
 - L3-021 神坛(极角排序求三角形最小面积)
		
在古老的迈瑞城,巍然屹立着 n 块神石.长老们商议,选取 3 块神石围成一个神坛.因为神坛的能量强度与它的面积成反比,因此神坛的面积越小越好.特殊地,如果有两块神石坐标相同,或者三块神石共线,神坛的面 ...
 - hdu 1348:Wall(计算几何,求凸包周长)
		
Wall Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
 - Wall - POJ 1113(求凸包)
		
题目大意:给N个点,然后要修建一个围墙把所有的点都包裹起来,但是要求围墙距离所有的点的最小距离是L,求出来围墙的长度. 分析:如果没有最小距离这个条件那么很容易看出来是一个凸包,然后在加上一个最小距离 ...
 - poj 1696 极角排序求最长逆时针螺旋线
		
Space Ant Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 4970 Accepted: 3100 Descrip ...
 - hdu5785(极角排序求所有锐角钝角个数)
		
做法很显然,求出所有的锐角和钝角就能求出有多少个锐角三角形了. 我用了愚钝的方法,写了两三个小时... 看了下别人简单的代码.学习了下做法. sort(temp+,temp+cnt+);//排序 Fo ...
 - 简单几何(极角排序) POJ 2007 Scrambled Polygon
		
题目传送门 题意:裸的对原点的极角排序,凸包貌似不行. /************************************************ * Author :Running_Time ...
 - poj 2187:Beauty Contest(计算几何,求凸包,最远点对)
		
Beauty Contest Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 26180 Accepted: 8081 D ...
 - POJ 1113 Wall 求凸包的两种方法
		
Wall Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 31199 Accepted: 10521 Descriptio ...
 
随机推荐
- 如何调试IIS错误信息
			
原文链接: http://blogs.msdn.com/b/tess/archive/2009/03/20/debugging-a-net-crash-with-rules-in-debug-diag ...
 - Chap5: question 35 - 37
			
35. 第一个只出现一次的字符 char firtNotRepeat(char *s) { if(s == NULL) return 0; int i = 0; while(s[i] != '\0') ...
 - [vB.NET]为控件添加鼠标悬浮时的提示气泡
			
实例代码: Dim k As ToolTip k = New ToolTip() k.AutoPopDelay = '显示出气泡后的延时时间(毫秒) k.InitialDelay = '出现前的延时( ...
 - [zhang] ViewController的生命周期分析和使用
			
iOS的SDK中提供很多原生ViewController,大大提高了我们的开发效率,下面是我的一些经验. 一.结构 按结构可以对iOS的所有ViewController分成两类:1.主要用于展示内容的 ...
 - python发邮件
			
# -*- coding:utf- -*- import smtplib,os,sys,string import mimetypes from email import Encoders from ...
 - Spring:No bean named 'beanScope' is defined
			
初学Spring,“No bean named 'beanScope' is defined”这个问题困扰了我好几个小时,查资料无果后,重写好几遍代码后发现问题居然是配置文件不能放在包里...要放在s ...
 - VBS操作剪切板
			
'设置剪切板的内容 Dim Form, TextBox Set Form = CreateObject("Forms.Form.1") Set TextBox = Form.Con ...
 - SQL递归
			
递归一般出现在树形结构中 1:根据孩子节点查找所有父节点 With T As ( Select * From U_Companies TB Where CompanyID=80047 Union Al ...
 - Birt 折腾一周总结
			
BIRT 报表配置 及建立报表的演示 目录 一.配置Birt --------------------------------------------------- 3-- 4 1.下载birt 2. ...
 - ASP.NET 操作Cookie详解 增加,修改,删除
			
ASP.NET 操作Cookie详解 增加,修改,删除 Cookie,有时也用其复数形式Cookies,指某些网站为了辨别用户身份而储存在用户本地终端上的数据(通常经过加密).定义于RFC2109.它 ...