栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

zoj 3066 Convex area

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

zoj 3066 Convex area

#include <cmath>#include <cstdio>struct Point{    int x, y, z;    Point() { }    Point(int x, int y, int z)        : x(x), y(y), z(z)    {    }};int sign(int x){    if (x > 0) return 1;    else if (x < 0) return -1;    else return 0;}double sqr(int x){    return x * x;}double abs(const Point& p){    return sqrt(sqr(p.x) + sqr(p.y) + sqr(p.z));}Point operator-(const Point& a, const Point& b){    return Point(a.x - b.x, a.y - b.y, a.z - b.z);}int dmult(const Point& a, const Point& b){    return a.x * b.x + a.y * b.y + a.z * b.z;}Point xmult(const Point& a, const Point& b){    return Point(a.y * b.z - a.z * b.y, a.z * b.x - a.x * b.z, a.x * b.y - a.y * b.x);}Point p[32];int s[32], ss;int main(){    int n;    bool flag;    double ans;    while (scanf("%d", &n) != EOF && n > 0) {        for (int i = 0; i < n; i++) { scanf("%d%d%d", &p[i].x, &p[i].y, &p[i].z);        }        ans = 0;        for (int i = 0; i < n; i++) { for (int j = i + 1; j < n; j++) {     for (int k = j + 1; k < n; k++) {         Point dn = xmult(p[j] - p[i], p[k] - p[i]);         ss = 0;         flag = true;         for (int t = 0; t < n; t++) {  s[t] = sign(dmult(dn, p[t] - p[i]));  if (s[t] != 0) {      if (ss == 0) {          ss = s[t];      }      else if (ss != s[t]) {          flag = false;          break;      }  }         }         if (flag) {  ans += abs(dn);         }     } }        }        printf("%.0lfn", ans / 2);    }    return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/372648.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号