HDU - 1392 凸包求周长(模板题)【Andrew】
<题目链接>
题目大意:
给出一些点,让你求出将这些点全部围住需要的多长的绳子。
Andrew算法
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
struct node{
int x,y;
};
node vex[];
bool cmp1(node a,node b){
if(a.y==b.y)
return a.x<b.x;
else
return a.y<b.y;
}
int cross(node,node,node);
double dis(node,node);
bool cmp(node a,node b){
int m=cross(vex[],a,b);
if(m==)
return dis(vex[],a)-dis(vex[],b)<=?true:false;
else
return m>?true:false;
}
node stackk[];
int cross(node a,node b,node c){
return (b.x-a.x)*(c.y-a.y)-(c.x-a.x)*(b.y-a.y);
}
double dis(node a,node b){
return sqrt((a.x-b.x)*(a.x-b.x)*1.0+(a.y-b.y)*(a.y-b.y));
}
int main(){
int t;
while(scanf("%d",&t),t!=){
int i;
for(i=;i<t;i++){
scanf("%d%d",&vex[i].x,&vex[i].y);
}
if(t==)
printf("%.2f\n",0.00);
else if(t==)
printf("%.2f\n",dis(vex[],vex[]));
else{
sort(vex,vex+t,cmp1);
sort(vex+,vex+t,cmp);
memset(stackk,,sizeof(stackk));
stackk[]=vex[];
stackk[]=vex[];
int top=;
for(i=;i<t;i++){
while(i>=&&cross(stackk[top-],stackk[top],vex[i])<)
top--;
stackk[++top]=vex[i];
}
double s=;
for(i=;i<=top;i++)
s+=dis(stackk[i-],stackk[i]);
s+=dis(stackk[top],vex[]);
printf("%.2f\n",s);
}
}
}
2018-08-22
HDU - 1392 凸包求周长(模板题)【Andrew】的更多相关文章
- TZOJ 2569 Wooden Fence(凸包求周长)
描述 Did you ever wonder what happens to your money when you deposit them to a bank account? All banks ...
- HDU 1392 凸包模板题,求凸包周长
1.HDU 1392 Surround the Trees 2.题意:就是求凸包周长 3.总结:第一次做计算几何,没办法,还是看了大牛的博客 #include<iostream> #inc ...
- hdu 1348 (凸包求周长)
链接:http://acm.hdu.edu.cn/showproblem.php?pid=1348 Wall Time Limit: 2000/1000 MS (Java/Others) Mem ...
- HDU 1392 凸包
Surround the Trees Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Other ...
- zoj 1453 Surround the Trees(凸包求周长)
链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=453 Time Limit: 2 Seconds Memory ...
- HDU 5521.Meeting 最短路模板题
Meeting Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total ...
- HDU 1711 - Number Sequence - [KMP模板题]
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1711 Time Limit: 10000/5000 MS (Java/Others) Memory L ...
- HDU 2222(AC自动机模板题)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2222 题目大意:多个模式串.问匹配串中含有多少个模式串.注意模式串有重复,所以要累计重复结果. 解题 ...
- HDU 2544 最短路(模板题——Floyd算法)
题目: 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt.但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的路线,你 ...
随机推荐
- tensorflow神经网络拟合非线性函数与操作指南
本实验通过建立一个含有两个隐含层的BP神经网络,拟合具有二次函数非线性关系的方程,并通过可视化展现学习到的拟合曲线,同时随机给定输入值,输出预测值,最后给出一些关键的提示. 源代码如下: # -*- ...
- 闭包传递(floyed)
题目链接: https://cn.vjudge.net/contest/66569#problem/H 题目大意: n代表母牛的个数,m代表给定的信息的组数.每一组数包括a,b. 代表b崇拜a(突然发 ...
- k8s系列~mgr的应用
一 简介:今天咱们大体介绍下 这两者是如何联系的二 概念解析 pod:说下我的理解 1 pod通过yaml文件来封装docker本身+启动形式 2 pod可以运行多个docke ...
- 解决Centos下yum无法更新
问题: http://mirrors.cloud.aliyuncs.com/epel/6/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 6 - ...
- struct 与 class 的区别
C++中的struct对C中的struct进行了扩充,它已经不再只是一个包含不同数据类型的数据结构了,它已经获取了太多的功能. struct能包含成员函数吗? 能! struct能继承吗? 能!! s ...
- SpringBoot使用其他的Servlet容器
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring- ...
- C# 关于用7zip压缩文件提示win32exception 系统找不到文件解决方案(win7 x64)
网上已经很多这方面的资料了,我就简单的说下好了 为了方便以后的查看 --------------------- 1.需要下载7zSharp:http://7zsharp.codeplex.com/re ...
- secureCRT连接linux系统
linux和secureCRT利用ssh协议22端口进行远程连接的 连接如果没有成功,请检查远程主机的端口和ssh是否开启 一.检查看SSH服务是否开启 当然有的linux系统使用的命令是/etc/i ...
- GetStockObject 理解
原文地址:https://www.cnblogs.com/Clingingboy/archive/2013/04/13/3017952.html GetStockObject在图形编程中是常用API之 ...
- 转载:使用Nginx的必备软件(1.3.2)《深入理解Nginx》(陶辉)
原文:https://book.2cto.com/201304/19612.html 如果要使用Nginx的常用功能,那么首先需要确保该操作系统上至少安装了如下软件. (1)GCC编译器 GCC(GN ...