• HDU2108和HDU2036(叉乘)


    hdu2108

    判断是否为凸边形

    判断连续三点的叉乘

    若为凸,内角<180;若为凹,内角>180

    所以通过正负来判断


    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <vector>
    #include <queue>
    #include <cmath>
    #include <algorithm>
    typedef long long ll;
    typedef unsigned long long ull;
    using namespace std;
    const int N=100050;
    struct node
    {
        int x,y;
    }pnode[N];
    
    
    int judge(int x,int y,int z)
    {
        return (pnode[y].x - pnode[x].x)*(pnode[z].y - pnode[y].y)-(pnode[z].x - pnode[y].x)*(pnode[y].y - pnode[x].y);
    }
    
    int main()
    {
        int n;
    
        while(scanf("%d",&n) && n)
        {
            for(int i = 1;i <= n;i++)
                scanf("%d%d",&pnode[i].x,&pnode[i].y);
            pnode[n+1].x = pnode[1].x;
            pnode[n+1].y = pnode[1].y;
            pnode[n+2].x = pnode[2].x;
            pnode[n+2].y = pnode[2].y;
            int flag = 0;
            for(int i = 1;i <= n;i++)
            {
                if(judge(i,i+1,i+2)<0)
                {
                    flag = 1;
                    break;
                }
            }
            if(flag )
                printf("concave
    ");
            else
                printf("convex
    ");
    
        }
        return 0;
    }
    
    
    hdu2036
    
    求一个多边形的面积
    
    分成许多个三角形来计算。   S△ = 向量AB 与 向量AC的叉乘/2
    
    
    
    #include <stdio.h>
    #include <math.h>
    int main()
    {
        int n,i,j;
        double S,x[101],y[101];
        while(scanf("%d",&n) && n != 0)
        {
            for(i = 0;i < n;i++)
                scanf("%lf%lf",&x[i],&y[i]);
            x[i] = x[0];
            y[i] = y[0];
            S = 0;
            for(j = 0;j < i;j++)
                S += x[j] * y[j+1] - x[j+1] * y[j];
            S = fabs(S / 2);
                printf("%.1lf
    ",S);
        }
        return 0;
    }
    

      

  • 相关阅读:
    spring3.2以后的cglib的jar包问题
    maven入门程序(二)
    maven安装配置(myeclipse)(一)
    spring中得到servletContext对象方法
    ftp上传java代码
    FileZilla ftp服务器安装
    spring junit参数
    说一说Servlet的生命周期?
    Servlet API中forward()与redirect()的区别?
    request.getAttribute()和 request.getParameter()有何区别?
  • 原文地址:https://www.cnblogs.com/Przz/p/5409794.html
Copyright © 2020-2023  润新知