三维空间中有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

#include<iostream>

#include<algorithm>
using namespace std;

struct node
   {
      char col;
      int x,y,z;   
   };

double Max=0;

vector<node> V;

double  Dis(int i,int j)
   {
     double dis;
     dis=sqrt(double((V[i].x-V[j].x)*(V[i].x-V[j].x)+(V[i].y-V[j].y)*(V[i].y-V[j].y)+(V[i].z-V[j].z)*(V[i].z-V[j].z)));
     return dis;
   }

bool IsSan(int i,int j,int k)
   {
       int a=Dis(i,j);
       int b=Dis(i,k);
       int c=Dis(j,k);
       if((a+b)>c&&(a+c)>b&&(b+c)>a)
           return true;
       else
           return false;
   }

bool Color(int i,int j,int k)
   {
      if((V[i].col==V[j].col)&&(V[j].col==V[k].col))
          return true;
      else if((V[i].col!=V[j].col)&&(V[j].col!=V[k].col)&&(V[i].col!=V[k].col))
          return true;
      return false;
   }

double  Area(int i,int j,int k)
    {
        double a=Dis(i,j);
        double b=Dis(i,k);
        double c=Dis(j,k);
        double p=(a+b+c)/2;
        double area=sqrt(p*(p-a)*(p-b)*(p-c));
        return area;
    }

int main()
    {
       int n;
       double area;
       cin>>n;
       node t;
       for(int i=0;i<n;i++)
         {
           cin>>t.col>>t.x>>t.y>>t.z;
           V.push_back(t);
         }
       for(int i=0;i<n;i++)
         {
           for(int j=i+1;j<n;j++)
              { for(int k=j+1;k<n;k++)
                 {  
                      if(IsSan(i,j,k)&&Color(i,j,k))
                          area=Area(i,j,k);
                      if (area>Max)                          
                          Max=area;
                 }
              }
         }
      printf("%.5lf",Max);
    }

寻找三角形(编程题)相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  8. 有道python网课怎么样-网易有道2017内推编程题 洗牌(python)

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

  9. 【面试锦囊】14种模式搞定面试算法编程题(8-14)

    面试锦囊之知识整理系列 面试锦囊系列一直有收到大家的反馈,包括后台内推成功的消息.朋友的同事从创业小公司成功跳到huawei等等,非常高兴小破号的这些整理分享能够真正地帮助到大家,以后也会继续.为了更 ...

  10. javascript编程题_如何开始使用JavaScript进行竞争性编程

    javascript编程题 by Priyabrata Biswas 通过Priyabrata Biswas 如何开始使用JavaScript进行竞争性编程 (How to get started w ...

最新文章

  1. html5 canvas雨点打到窗玻璃动画
  2. Sybase IQ导出文件的几种方式
  3. 测试开发工程师技能图谱
  4. 谷歌发布深度学习新算法,适用于真实机器人的技能学习
  5. Powershell管理系列(三十九)PowerShell查询和解锁AD账号
  6. Linux下的进程概论与编程二(进程控制)
  7. 判断android图片是否硬解码(方法)
  8. 如何备份 Outlook Express 项
  9. Multi-thread--C++11中std::lock_guard的使用
  10. Qt DLL总结【三】-VS2008+Qt 使用QPluginLoader访问DLL
  11. verilog学习记(加法器)
  12. Ceres Solver: 高效的非线性优化库(二)实战篇
  13. 众人拾柴火焰高,5G承载将逐步进入成熟期
  14. 常用的办公软件有哪些?
  15. mysql slave_pending_jobs_size_max_MySQL MTS复制: hitting slave_pending_jobs_size_max
  16. 解决宝塔面板开启HTTS后,Edge不能访问的问题
  17. 使用omniverse:一张照片快速生成一个3D数字人
  18. 杨辉三角与倒置杨辉三角
  19. Android Amazon S3 功能接入
  20. PFP:面向材料发现的通用神经网络

热门文章

  1. Linux替代Windows系统软件比拼
  2. 27muduo_net库源码分析(三)
  3. win7 linux启动设置u盘启动,在linux下怎么样制作win7的U盘启动?
  4. 谷歌json插件_没用过这7款浏览器插件,你一定是假的程序员
  5. 为什么用jdbc插入数据为空_为什么气象数据推荐用 ModelWhale 处理
  6. HALCON 21.11:深度学习笔记---模型(8)
  7. laravel-admin 使用记录(1) - 安装
  8. prisma graphql 工具基本使用
  9. P2234 [HNOI2002]营业额统计
  10. Android零基础入门第85节:Fragment使用起来非常简单