• hdu 2108 Shape of HDU(判定是不是凸多边形)


     1 #include <iostream>
     2 #include <algorithm>
     3 #include <cstring>
     4 #include <cstdio>
     5 #include <string>
     6 #include <map>
     7 #include <cmath>
     8 #include <vector>
     9 
    10 #define Faster ios::sync_with_stdio(false),cin.tie(0)
    11 #define Read freopen("in.txt","r",stdin),freopen("out.txt","w",stdout)
    12 #define Close fclose(stdin),fclose(stdout)
    13 const int maxn = 1e5 + 5;
    14 using namespace std;
    15 const int MOD = 1e9+7;
    16 typedef long long ll;
    17 
    18 const double eps = 1e-6;
    19 #define _sign(x)((x)>eps?1:((x)<-eps?2:0))
    20 
    21 
    22 struct point
    23 {
    24     double x,y;
    25 }p[maxn];
    26 
    27 double xmult(point p1,point p2,point p0) { 
    28     return(p1.x-p0.x)*(p2.y-p0.y)-(p2.x-p0.x)*(p1.y-p0.y); 
    29 }
    30 
    31 int is_convex(int n) { 
    32     int i,s[3]={1,1,1}; 
    33     for (i=0;i<n&&s[1]|s[2];i++) 
    34         s[_sign(xmult(p[(i+1)%n],p[(i+2)%n],p[i]))] = 0; 
    35     return s[1]|s[2]; 
    36 }
    37 
    38 int main(){
    39     Faster;
    40     int n;
    41     while(cin >> n){
    42         if(n == 0)
    43             break;
    44         for(int i = 0;i < n;i++){
    45             cin >> p[i].x >> p[i].y;
    46         }
    47         if(is_convex(n)){
    48             cout << "convex" << endl;
    49         }
    50         else
    51             cout << "concave" << endl;
    52     }
    53     return 0;
    54 }
  • 相关阅读:
    idea拉取git项目并创建为maven项目(新创建github项目)
    寒假学习进度-4
    寒假学习进度-3
    寒假学习进度-2
    寒假学习进度-1
    面向对象设计原则
    Servlet中生成json文件,echarts模板调用
    Mapreduce--数据清洗
    Tutorial 06_MapReduce实例WordCount
    爬虫学习-入门
  • 原文地址:https://www.cnblogs.com/ouyang_wsgwz/p/9159402.html
Copyright © 2020-2023  润新知