zoukankan      html  css  js  c++  java
  • 2108 ACM 向量积 凹凸

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=2108

    图一中,向量a × 向量 b    根据右手定则,得出向量c的方向。即为凸多边形。

    图二中,若向量a × 向量 b  根据右手定则,则得出的向量d的方向,即为凹多边形。

    又根据图一中,向量a × 向量 b为正,所以根据坐标得    (x[i+1]-x[i])*(y[i+2]-y[i])-(x[i+2]-x[i])*(y[i+1]-y[i]) > 0

    代码:

    #include<cstdio>
    int main ()
    {
        int n;
        int x[1001],y[1001];
        while(scanf("%d",&n)!=EOF&&n)
        {
            for(int j=0;j<n;j++)
            scanf("%d %d",&x[j],&y[j]);
            x[n]=x[0];
            x[n+1]=x[1];
            y[n]=y[0];
            y[n+1]=y[1];
            int sum,i;
            for( i=0;i<n;i++)
            {
                sum=(x[i+1]-x[i])*(y[i+2]-y[i])-(x[i+2]-x[i])*(y[i+1]-y[i]);
                if(sum<0)
                    break;
            }
            if(i!=n || sum<0)
                printf("concave
    ");
            else
                printf("convex
    ");
        }
    }
  • 相关阅读:
    2.8
    2.7
    2.6
    2.5
    2.4第三篇读后感
    2.2第一篇读后感
    2.1
    字符统计
    6468: Snuke's Coloring
    6463: Tak and Hotels II
  • 原文地址:https://www.cnblogs.com/CheeseIce/p/9615363.html
Copyright © 2011-2022 走看看