zoukankan      html  css  js  c++  java
  • 【计算几何初步-判断是否凸多边形】【HDU2108】Shape of HDU

    Shape of HDU

    Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
    Total Submission(s): 5369    Accepted Submission(s): 2445


    Problem Description
    话说上回讲到海东集团推选老总的事情,最终的结果是XHD以微弱优势当选,从此以后,“徐队”的称呼逐渐被“徐总”所取代,海东集团(HDU)也算是名副其实了。
    创业是需要地盘的,HDU向钱江肉丝高新技术开发区申请一块用地,很快得到了批复,据说这是因为他们公司研发的“海东牌”老鼠药科技含量很高,预期将占全球一半以上的市场。政府划拨的这块用地是一个多边形,为了描述它,我们用逆时针方向的顶点序列来表示,我们很想了解这块地的基本情况,现在请你编程判断HDU的用地是凸多边形还是凹多边形呢?
     

    Input
    输入包含多组测试数据,每组数据占2行,首先一行是一个整数n,表示多边形顶点的个数,然后一行是2×n个整数,表示逆时针顺序的n个顶点的坐标(xi,yi),n为0的时候结束输入。
     

    Output
    对于每个测试实例,如果地块的形状为凸多边形,请输出“convex”,否则输出”concave”,每个实例的输出占一行。
     

    Sample Input
    4 0 0 1 0 1 1 0 1 0
     

    Sample Output
    convex 海东集团终于顺利成立了!后面的路,他们会顺顺利利吗? 欲知后事如何,且听下回分解——
     

    Author
    lcy
     

    Source
     

    Recommend
    lcy   |   We have carefully selected several similar problems for you:  1392 2109 2107 2111 2110 
     


    判断   ai->ai+1(向量) 叉乘ai->ai+2(向量) 是否会小于0即可

    #include <cstdio>  
    #include <cstdlib>  
    #include <cmath>  
    #include <cstring>  
    #include <ctime>  
    #include <algorithm>  
    #include <iostream>
    #include <sstream>
    #include <string>
    #define oo 0x13131313
    #define maxn 10001   
    using namespace std;
    int N;
    int OK;
    struct point {
    	double x,y;
    };
    point A[maxn];
    void input()
    {
    	OK=1;
    	for(int i=1;i<=N;i++)
    	{
    		scanf("%lf%lf",&A[i].x,&A[i].y);
    	}
    }
    void init()
    {
    	freopen("a.in","r",stdin);
    	freopen("a.out","w",stdout);
    }
    void solve()
    {
    	for(int i=1;i<=N;i++)
    	{
    		int j=i-1;int k=i+1; 
    		if(k==N+1) k=1;
    		if(j==0) j=N;
    		if(((A[i].x-A[j].x)*(A[k].y-A[j].y)-(A[k].x-A[j].x)*(A[i].y-A[j].y))<0) OK=0;
    	}
    }
    int main()
    {
    	//init();
    	while(cin>>N&&N)
    	{
    		input();
    		solve();
    		if(OK)
    		cout<<"convex"<<endl;
    		else cout<<"concave"<<endl;
    	}
    	return 0;
    }
      
      
      
      
      
      
      
      
      
      
      


  • 相关阅读:
    poj 2584 T-Shirt Gumbo (二分匹配)
    hdu 1757 A Simple Math Problem (乘法矩阵)
    矩阵之矩阵乘法(转载)
    poj 2239 Selecting Courses (二分匹配)
    hdu 3661 Assignments (贪心)
    hdu 1348 Wall (凸包)
    poj 2060 Taxi Cab Scheme (二分匹配)
    hdu 2202 最大三角形 (凸包)
    hdu 1577 WisKey的眼神 (数学几何)
    poj 1719 Shooting Contest (二分匹配)
  • 原文地址:https://www.cnblogs.com/zy691357966/p/5480428.html
Copyright © 2011-2022 走看看