寻找三角形 (海伦公式)
来源:互联网 发布:java的反射机制详解 编辑:程序博客网 时间:2024/05/04 05:02
海伦公式:
思路:枚举三角形的三个顶点,判断是否满足三个点的颜色要么全部相同,要么全部不同。
AC代码
#include <stdio.h>#include <math.h>#include <algorithm>using namespace std;const int maxn = 50+5;struct point{ char col; double x, y, z;}a[maxn];double getLen(int i, int j) { int p = (a[i].x-a[j].x)*(a[i].x-a[j].x)+(a[i].y-a[j].y)*(a[i].y-a[j].y)+(a[i].z-a[j].z)*(a[i].z-a[j].z); return sqrt(p);}double getArea(int i, int j, int k) { double a = getLen(i, j); double b = getLen(i, k); double c = getLen(j, k); double p = (a+b+c) / 2; double area = sqrt(p*(p-a)*(p-b)*(p-c)); return area;}int main() { int n; while(scanf("%d", &n) == 1) { for(int i = 0; i < n; i++) { getchar(); scanf("%c %lf %lf %lf", &a[i].col, &a[i].x, &a[i].y, &a[i].z); } double 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++) { if((a[i].col == a[j].col && a[i].col == a[k].col)) { ans = max(ans, getArea(i, j, k)); } if(a[i].col != a[j].col && a[i].col != a[k].col && a[j].col != a[k].col) { ans = max(ans, getArea(i, j, k)); } } printf("%.5f\n", ans); } return 0;}
如有不当之处欢迎指出!
阅读全文
0 0
- 寻找三角形 (海伦公式)
- 三角形二(海伦公式)
- CSU 1591: 三角形(海伦公式)
- NYOJ 815 三角形【海伦公式】
- 三角形面积之海伦公式
- (海伦公式)已知三角形三条边长,求面积
- (海伦公式)已知三角形三条边长,求面积
- 计算三角形面积的海伦公式
- 海伦公式也可以判断三角形
- nyoj 67 三角形面积(海伦公式)
- C++实现——求三角形的面积(海伦公式)
- 海伦公式
- 海伦公式
- 海伦公式
- 海伦公式
- 海伦公式
- 海伦公式
- 海伦公式
- 深刻理解Python中的元类(metaclass)
- 特殊变量
- A New Begin
- c语言初步经典题11--坐标转换
- 小白算法练习 NYOJ 吝啬的国度 dfs+邻接表
- 寻找三角形 (海伦公式)
- 外卖“搭上”高铁已成事实,然叫好叫座难兑现?
- python链家网二手房数据爬取
- 【字符串·ac自动机】uva1449Dominating Patterns
- 机器学习入门-线性回归
- Linux启动/停止/重启XAMPP(禅道)
- 集合
- perl_正则表达式
- mysql(5.6)分区(一)分区键,主键和唯一键