寻找三角形
来源:互联网 发布:希拉里 放过, 知乎 编辑:程序博客网 时间:2024/05/16 08:36
#include<bits/stdc++.h>using namespace std;struct P{ int x; int y; int z;}r[55],g[55],b[55];double L(P a,P b) { return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y)+(a.z-b.z)*(a.z-b.z));}double S(P a,P b,P c) { double d1=L(a,b); double d2=L(a,c); double d3=L(b,c); double l=(d1+d2+d3)/2; double s=sqrt(l*(l-d1)*(l-d2)*(l-d3)); return s;}int main() { int n; while(cin>>n) { int rn=0,gn=0,bn=0; char c; int x,y,z; for(int i=0;i<n;i++) { cin>>c>>x>>y>>z; if(c=='R'){ r[rn].x=x; r[rn].y=y; r[rn].z=z; rn++; } else if(c=='G'){ g[gn].x=x; g[gn].y=y; g[gn].z=z; gn++; } else if(c=='B'){ b[bn].x=x; b[bn].y=y; b[bn].z=z; bn++; } } double max=0; if(rn>=3) { for(int i1=0;i1<rn-2;i1++) for(int i2=i1+1;i2<rn-1;i2++) for(int i3=i2+1;i3<rn;i3++) { double s=S(r[i1],r[i2],r[i3]); if(s>max)max=s; } } if(gn>=3) { for(int i1=0;i1<gn-2;i1++) for(int i2=i1+1;i2<gn-1;i2++) for(int i3=i2+1;i3<gn;i3++) { double s=S(g[i1],g[i2],g[i3]); if(s>max)max=s; } } if(bn>=3) { for(int i1=0;i1<bn-2;i1++) for(int i2=i1+1;i2<bn-1;i2++) for(int i3=i2+1;i3<bn;i3++) { double s=S(b[i1],b[i2],b[i3]); if(s>max)max=s; } } for(int i1=0;i1<rn;i1++) for(int i2=0;i2<gn;i2++) for(int i3=0;i3<bn;i3++) { double s=S(r[i1],g[i2],b[i3]); if(s>max)max=s; } printf("%.5f\n",max); } return 0;}#include<iostream>#include<cmath>using namespace std;int r[1000][3];int g[1000][3];int b[1000][3];int main() { int n; while(cin>>n) { int rn=0,gn=0,bn=0; char c; int x,y,z; for(int i=0;i<n;i++) { cin>>c>>x>>y>>z; if(c=='R'){ r[rn][0]=x; r[rn][1]=y; r[rn][2]=z; rn++; } else if(c=='G'){ g[gn][0]=x; g[gn][1]=y; g[gn][2]=z; gn++; } else if(c=='B'){ b[bn][0]=x; b[bn][1]=y; b[bn][2]=z; bn++; } } double max=0; if(rn>=3) { for(int i1=0;i1<rn-2;i1++) for(int i2=i1+1;i2<rn-1;i2++) for(int i3=i2+1;i3<rn;i3++) { double d1=sqrt((r[i1][0]-r[i2][0])*(r[i1][0]-r[i2][0])+(r[i1][1]-r[i2][1])*(r[i1][1]-r[i2][1])+(r[i1][2]-r[i2][2])*(r[i1][2]-r[i2][2])); double d2=sqrt((r[i1][0]-r[i3][0])*(r[i1][0]-r[i3][0])+(r[i1][1]-r[i3][1])*(r[i1][1]-r[i3][1])+(r[i1][2]-r[i3][2])*(r[i1][2]-r[i3][2])); double d3=sqrt((r[i3][0]-r[i2][0])*(r[i3][0]-r[i2][0])+(r[i3][1]-r[i2][1])*(r[i3][1]-r[i2][1])+(r[i3][2]-r[i2][2])*(r[i3][2]-r[i2][2])); double l=(d1+d2+d3)/2; double s=sqrt(l*(l-d1)*(l-d2)*l-d3); if(s>max)max=s; cout<<d1<<" "<<d2<<" "<<d3;cout<<l } } if(gn>=3) { for(int i1=0;i1<gn-2;i1++) for(int i2=i1+1;i2<gn-1;i2++) for(int i3=i2+1;i3<gn;i3++) { double d1=sqrt((g[i1][0]-g[i2][0])*(g[i1][0]-g[i2][0])+(g[i1][1]-g[i2][1])*(g[i1][1]-g[i2][1])+(g[i1][2]-g[i2][2])*(g[i1][2]-g[i2][2])); double d2=sqrt((g[i1][0]-g[i3][0])*(g[i1][0]-g[i3][0])+(g[i1][1]-g[i3][1])*(g[i1][1]-g[i3][1])+(g[i1][2]-g[i3][2])*(g[i1][2]-g[i3][2])); double d3=sqrt((g[i3][0]-g[i2][0])*(g[i3][0]-g[i2][0])+(g[i3][1]-g[i2][1])*(g[i3][1]-g[i2][1])+(g[i3][2]-g[i2][2])*(g[i3][2]-g[i2][2])); double l=(d1+d2+d3)/2; double s=sqrt(l*(l-d1)*(l-d2)*l-d3); if(s>max)max=s; } } if(bn>=3) { for(int i1=0;i1<bn-2;i1++) for(int i2=i1+1;i2<bn-1;i2++) for(int i3=i2+1;i3<bn;i3++) { double d1=sqrt((b[i1][0]-b[i2][0])*(b[i1][0]-b[i2][0])+(b[i1][1]-b[i2][1])*(b[i1][1]-b[i2][1])+(b[i1][2]-b[i2][2])*(b[i1][2]-b[i2][2])); double d2=sqrt((b[i1][0]-b[i3][0])*(b[i1][0]-b[i3][0])+(b[i1][1]-b[i3][1])*(b[i1][1]-b[i3][1])+(b[i1][2]-b[i3][2])*(b[i1][2]-b[i3][2])); double d3=sqrt((b[i3][0]-b[i2][0])*(b[i3][0]-b[i2][0])+(b[i3][1]-b[i2][1])*(b[i3][1]-b[i2][1])+(b[i3][2]-b[i2][2])*(b[i3][2]-b[i2][2])); double l=(d1+d2+d3)/2; double s=sqrt(l*(l-d1)*(l-d2)*l-d3); if(s>max)max=s; } } for(int i1=0;i1<rn;i1++) for(int i2=0;i2<gn;i2++) for(int i3=0;i3<bn;i3++) { double d1=sqrt((r[i1][0]-g[i2][0])*(r[i1][0]-g[i2][0])+(r[i1][1]-g[i2][1])*(r[i1][1]-g[i2][1])+(r[i1][2]-g[i2][2])*(r[i1][2]-g[i2][2])); double d2=sqrt((r[i1][0]-b[i3][0])*(r[i1][0]-b[i3][0])+(r[i1][1]-b[i3][1])*(r[i1][1]-b[i3][1])+(r[i1][2]-b[i3][2])*(r[i1][2]-b[i3][2])); double d3=sqrt((b[i3][0]-g[i2][0])*(b[i3][0]-g[i2][0])+(b[i3][1]-g[i2][1])*(b[i3][1]-g[i2][1])+(b[i3][2]-g[i2][2])*(b[i3][2]-g[i2][2])); double l=(d1+d2+d3)/2; double s=sqrt(l*(l-d1)*(l-d2)*l-d3); if(s>max)max=s; } cout<<max<<endl; } return 0;}
阅读全文
0 0
- 寻找三角形
- 寻找三角形
- 寻找三角形
- 寻找三角形
- 寻找三角形
- 寻找三角形
- 牛客网 寻找三角形
- 百度笔试-寻找三角形
- [编程题] 寻找三角形
- [编程题] 寻找三角形
- 寻找三角形-百度-最大值
- 百度:寻找三角形
- 【算法题】寻找三角形
- [编程题] 寻找三角形
- [编程题] 寻找三角形
- [编程题] 寻找三角形
- 寻找三角形(编程题)
- 【百度春招】寻找三角形
- J
- 学习protege4.3-OWL API进行编程(一)
- matlab遍历文件夹下指定类型的文件以及子文件夹
- java 泛型详解
- 1.6 离散系统的复频域分析
- 寻找三角形
- 光学设计CAD:基于ZEMAX的望远物镜优化设计
- cmake编译Debug和Release版本的注意点
- NoSQL 数据库索引 总结
- linux用户与用户组管理
- 索引器概述
- hihoCoder #1036 Trie图
- 算法--组合数学:杨辉三角数学分析以及Java实现
- LeetCode 207 Course Schedule 题解