三维空间中有N个点,每个点可能是三种颜色的其中之一,三种颜色分别是红绿蓝,分别用’R’, ‘G’, ‘B’表示。
现在要找出三个点,并组成一个三角形,使得这个三角形的面积最大。
但是三角形必须满足:三个点的颜色要么全部相同,要么全部不同。

输入描述:
首先输入一个正整数N三维坐标系内的点的个数.(N <= 50)

接下来N行,每一行输入 c x y z,c为’R’, ‘G’, ‘B’ 的其中一个。x,y,z是该点的坐标。(坐标均是0到999之间的整数)

输出描述:
输出一个数表示最大的三角形面积,保留5位小数。

输入例子:
5
R 0 0 0
R 0 4 0
R 0 0 3
G 92 14 7
G 12 16 8

输出例子:
6.00000


这题最重要的是已知空间中的三个点,求这三个点构成三角形的面积
我们可以先求出这个三角形的三条边a,b,c,再用海伦公式求面积
s=sqrt(p* (p-a) * (p-b) * (p-c)) 其中p=(a+b+c) / 2
知道这些以后,我们只需要暴力求最大值即可

#include"iostream"
#include"math.h"
#include"stdlib.h"
#include <iterator>
#include"stdio.h"
using namespace std;struct noode
{char coolor;int x,y,z;
};double dis (noode a,noode b)
{return sqrt(1.0*(a.x-b.x)*(a.x-b.x)+1.0*(a.y-b.y)*(a.y-b.y)+1.0*(a.z-b.z)*(a.z-b.z));
}int main()
{int n;double mmax=-1e9;cin>>n;noode ai[100];for(int i=0;i<n;i++){cin>>ai[i].coolor>>ai[i].x>>ai[i].y>>ai[i].z;}for(int i=0;i<n;i++){for(int j=0;j<n;j++ ){if(i==j) continue;for(int k=0;k<n;k++){if(k==i||k==j) continue;if((ai[i].coolor==ai[j].coolor&&ai[j].coolor==ai[k].coolor)||(ai[i].coolor!=ai[j].coolor&&ai[j].coolor!=ai[k].coolor&&ai[i].coolor!=ai[k].coolor)){double a=dis(ai[i],ai[j]);double b=dis(ai[i],ai[k]);double c=dis(ai[j],ai[k]);double p=(a+b+c)/2;double mianji=sqrt(p*(p-a)*(p-b)*(p-c));if(mianji>mmax) mmax=mianji;//cout<<a<<" "<<b<<" "<<c<<endl;}}}}printf("%.5lf\n",mmax);return 0;
}

[编程题] 寻找三角形相关推荐

  1. 网易2016 实习研发工程师 [编程题]寻找第K大 and leetcode 215. Kth Largest Element in an Array...

    传送门 有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数. 给定一个整数数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的数,保证答案存在. 测试样例: [1,3,5, ...

  2. 网易2016实习研发工程师编程题——寻找第K大

    1.题目 有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数. 给定一个整数数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的数,保证答案存在. 测试样例: [1,3,5 ...

  3. 3、寻找三角形--百度2017春招

    [编程题] 寻找三角形 时间限制:1秒 空间限制:32768K 三维空间中有N个点,每个点可能是三种颜色的其中之一,三种颜色分别是红绿蓝,分别用'R', 'G', 'B'表示.  现在要找出三个点,并 ...

  4. 判断三角形java代码_java基础编程题之异常处理

    以下是刚开始学习java的基础编程题,每天持续更新java每个知识点的题目,持续练习,不断提高java基本功,培养编程能力.今天的练习的十八题是java的异常处理的使用. 1.检测年龄不能为负数和大于 ...

  5. java语言编程三角形图形_编程题:编写程序输入三角形的3条边长,计算并输出... 求助一道JAVA编程题:编写一个类似记事本的图形用......

    导航:网站首页 > 编程题:编写程序输入三角形的3条边长,计算并输出... 求助一道JAVA编程题:编写一个类似记事本的图形用... 编程题:编写程序输入三角形的3条边长,计算并输出... 求助 ...

  6. 沈师PTA2021Java编程题复习题库

    致谢:感谢@WalkingWithTheWind-帮我寻找PTA中的CSS选择器 1. 编程题:判断闰年 (10 分) 根据输入的正整数y所代表的年份,计算输出该年份是否为闰年 闰年的判断标准: 能够 ...

  7. 数据结构面试题编程题_您下次编程面试时应该了解的顶级数据结构

    数据结构面试题编程题 by Fahim ul Haq 通过Fahim ul Haq Niklaus Wirth, a Swiss computer scientist, wrote a book in ...

  8. MIT微软为AI量身打造了一套leetcode编程题

    丰色 发自 凹非寺 量子位 报道 | 公众号 QbitAI 你见过这种编程题目描述方式吗? 不用自然语言描述,也没有输入输出示例,你所看到的就只有一个Python函数. 这是来自MIT.Allen A ...

  9. python 内推_网易有道2017内推编程题 洗牌(python)

    本文实例为大家分享了网易有道2017内推编程题:洗牌,供大家参考,具体内容如下 ''' [编程题] 洗牌 时间限制:1秒 空间限制:32768K 洗牌在生活中十分常见,现在需要写一个程序模拟洗牌的过程 ...

最新文章

  1. java.lang.ClassCastException: [B cannot be cast to java.lang.String
  2. jquery-nodejs-安装与测试
  3. 黑马 程序员——Java基础---IO(下)
  4. Java同步组件之Condition,FutureTask
  5. python怎么导入txt文件-python – 如何一次读取和附加到文本文件?
  6. Linux shell 查找操作
  7. 风火编程--繁体转简体
  8. CI框架redirect自动加上了index.php问题
  9. linux修改文件权限为所有人都可以访问,Linux 笔记分享八:文件权限的设定
  10. hd620显卡linux驱动,Thinkpad T480 Win7 安装 INTEL HD620显卡驱动
  11. cloudfare dns_Cloudflare配置动态dns(ddns)
  12. 金职院计算机网络技术中外合作有什么不一样,金华职业技术学院学费多少
  13. SpringBoot整合redis——redisTemplate,RedisUtil的使用!
  14. 菜鸟到大神的上位历程,即学即用走向人生巅峰
  15. Pyqt qtableview 大量动态刷新数据
  16. 论文:预测原子距离进行构象预测(VAE)
  17. 百度快照排名推广如何优化?
  18. 浅入浅出Oracle Spatial GeoRaster 10g影像数据管理(2)
  19. 坐标移动c语言,C语言 坐标移动详解及实例代码
  20. 使用O2OA(翱途)体验人力资源管理系统

热门文章

  1. HTML5标签(上)
  2. hasOwnProperty用来干嘛的
  3. 一个案例告诉你,GIS技术与数据可视化结合能帮助我们什么?
  4. C语言--打印正金字塔和倒金字塔
  5. 计算机视觉入门-最小二乘法、随机取样法、鲁棒估计、霍夫变换
  6. Federated Continual Learning with Weighted Inter-client Transfer——论文笔记
  7. 浅析微信营销和微博营销的区别
  8. 制药企业如何利用好邓白氏编码挖掘海外市场增长极?
  9. 云计算机虚拟化技术,云计算的技术基础-虚拟化技术(一)
  10. 小马哥四轴代码解读-SPI-flash篇