HDU 2108 Shape of HDU (凸包的判定)
2016-07-21 10:37
387 查看
Shape of HDU
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 7508 Accepted Submission(s): 3392
[align=left]Problem Description[/align]
话说上回讲到海东集团推选老总的事情,最终的结果是XHD以微弱优势当选,从此以后,“徐队”的称呼逐渐被“徐总”所取代,海东集团(HDU)也算是名副其实了。
创业是需要地盘的,HDU向钱江肉丝高新技术开发区申请一块用地,很快得到了批复,据说这是因为他们公司研发的“海东牌”老鼠药科技含量很高,预期将占全球一半以上的市场。政府划拨的这块用地是一个多边形,为了描述它,我们用逆时针方向的顶点序列来表示,我们很想了解这块地的基本情况,现在请你编程判断HDU的用地是凸多边形还是凹多边形呢?
[align=left]Input[/align]
输入包含多组测试数据,每组数据占2行,首先一行是一个整数n,表示多边形顶点的个数,然后一行是2×n个整数,表示逆时针顺序的n个顶点的坐标(xi,yi),n为0的时候结束输入。
[align=left]Output[/align]
对于每个测试实例,如果地块的形状为凸多边形,请输出“convex”,否则输出”concave”,每个实例的输出占一行。
[align=left]Sample Input[/align]
4
0 0 1 0 1 1 0 1
0
[align=left]Sample Output[/align]
convex
海东集团终于顺利成立了!后面的路,他们会顺顺利利吗?
欲知后事如何,且听下回分解——
[align=left]Author[/align]
lcy
[align=left]Source[/align]
ACM程序设计_期末考试(时间已定!!)
[align=left]Recommend[/align]
lcy | We have carefully selected several similar problems for you: 1086 1392 2111 2110 2150
题解:
凸包的判定:可以用向量叉积的正负来判定;
我们去除连续的三个点a,b,c,如果(a-b)叉乘(a-c),如果,大于零,则b点的角度小于180度,这样判断出所有的角度,就可以确定该多边形是不是个凸包。
AC代码:
#include<iostream> #include<algorithm> #include<stdio.h> #include<string.h> using namespace std; #define ll long long struct point { double x,y; }p[1010]; double cross(point a,point b,point c)//计算叉积 { return (b.x-a.x)*(c.y-a.y)-(b.y-a.y)*(c.x-a.x); } int main() { int n; while(scanf("%d",&n)&&n) { for(int i=0;i<n;i++) { scanf("%lf%lf",&p[i].x,&p[i].y); } p[n++]=p[0]; p[n++]=p[1]; bool ans=true; for(int i=2;i<n;i++) { if(cross(p[i-2],p[i-1],p[i])<0) //小于0,角度大于180度 { ans=false; break; } } if(ans) puts("convex");//是凸包 else puts("concave");//不是凸包 } return 0; }
相关文章推荐
- iOS笔记监听键盘状态 获取键盘高度
- 嵌入式C语言实战开发详解(四)
- mysql主从复制
- C语言积累
- Swift基础(十二)UI基础--AutoLayout
- Android RecyclerView使用详解(二)
- CREATE TABLESPACE——PERMANENT
- MYSQL 中判断2个逗号分割的字符串是否有交集
- js 单机时间放在ready中
- Suricata配置文件说明1
- 5-Binary String Matching
- 上传漏洞浅见
- 现实中的吸血鬼
- Android开发工具AS常用技巧篇
- GCD实现一张一张的传输图片,即传完一张再传另外一张
- java IO流
- Linux学习笔记--认识Linux下路径概念
- 解决svn working copy locked问题
- Prime Ring Problem (dfs)
- 韩亚飞 仿明星百科. IPO, 马化腾,马云百科