寻找三角形(编程题)
三维空间中有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);
}
寻找三角形(编程题)相关推荐
- 判断三角形java代码_java基础编程题之异常处理
以下是刚开始学习java的基础编程题,每天持续更新java每个知识点的题目,持续练习,不断提高java基本功,培养编程能力.今天的练习的十八题是java的异常处理的使用. 1.检测年龄不能为负数和大于 ...
- java语言编程三角形图形_编程题:编写程序输入三角形的3条边长,计算并输出... 求助一道JAVA编程题:编写一个类似记事本的图形用......
导航:网站首页 > 编程题:编写程序输入三角形的3条边长,计算并输出... 求助一道JAVA编程题:编写一个类似记事本的图形用... 编程题:编写程序输入三角形的3条边长,计算并输出... 求助 ...
- 3、寻找三角形--百度2017春招
[编程题] 寻找三角形 时间限制:1秒 空间限制:32768K 三维空间中有N个点,每个点可能是三种颜色的其中之一,三种颜色分别是红绿蓝,分别用'R', 'G', 'B'表示. 现在要找出三个点,并 ...
- 沈师PTA2021Java编程题复习题库
致谢:感谢@WalkingWithTheWind-帮我寻找PTA中的CSS选择器 1. 编程题:判断闰年 (10 分) 根据输入的正整数y所代表的年份,计算输出该年份是否为闰年 闰年的判断标准: 能够 ...
- 数据结构面试题编程题_您下次编程面试时应该了解的顶级数据结构
数据结构面试题编程题 by Fahim ul Haq 通过Fahim ul Haq Niklaus Wirth, a Swiss computer scientist, wrote a book in ...
- MIT微软为AI量身打造了一套leetcode编程题
丰色 发自 凹非寺 量子位 报道 | 公众号 QbitAI 你见过这种编程题目描述方式吗? 不用自然语言描述,也没有输入输出示例,你所看到的就只有一个Python函数. 这是来自MIT.Allen A ...
- python 内推_网易有道2017内推编程题 洗牌(python)
本文实例为大家分享了网易有道2017内推编程题:洗牌,供大家参考,具体内容如下 ''' [编程题] 洗牌 时间限制:1秒 空间限制:32768K 洗牌在生活中十分常见,现在需要写一个程序模拟洗牌的过程 ...
- 有道python网课怎么样-网易有道2017内推编程题 洗牌(python)
本文实例为大家分享了网易有道2017内推编程题:洗牌,供大家参考,具体内容如下 ''' [编程题] 洗牌 时间限制:1秒 空间限制:32768K 洗牌在生活中十分常见,现在需要写一个程序模拟洗牌的过程 ...
- 【面试锦囊】14种模式搞定面试算法编程题(8-14)
面试锦囊之知识整理系列 面试锦囊系列一直有收到大家的反馈,包括后台内推成功的消息.朋友的同事从创业小公司成功跳到huawei等等,非常高兴小破号的这些整理分享能够真正地帮助到大家,以后也会继续.为了更 ...
- javascript编程题_如何开始使用JavaScript进行竞争性编程
javascript编程题 by Priyabrata Biswas 通过Priyabrata Biswas 如何开始使用JavaScript进行竞争性编程 (How to get started w ...
最新文章
- html5 canvas雨点打到窗玻璃动画
- Sybase IQ导出文件的几种方式
- 测试开发工程师技能图谱
- 谷歌发布深度学习新算法,适用于真实机器人的技能学习
- Powershell管理系列(三十九)PowerShell查询和解锁AD账号
- Linux下的进程概论与编程二(进程控制)
- 判断android图片是否硬解码(方法)
- 如何备份 Outlook Express 项
- Multi-thread--C++11中std::lock_guard的使用
- Qt DLL总结【三】-VS2008+Qt 使用QPluginLoader访问DLL
- verilog学习记(加法器)
- Ceres Solver: 高效的非线性优化库(二)实战篇
- 众人拾柴火焰高,5G承载将逐步进入成熟期
- 常用的办公软件有哪些?
- mysql slave_pending_jobs_size_max_MySQL MTS复制: hitting slave_pending_jobs_size_max
- 解决宝塔面板开启HTTS后,Edge不能访问的问题
- 使用omniverse:一张照片快速生成一个3D数字人
- 杨辉三角与倒置杨辉三角
- Android Amazon S3 功能接入
- PFP:面向材料发现的通用神经网络
热门文章
- Linux替代Windows系统软件比拼
- 27muduo_net库源码分析(三)
- win7 linux启动设置u盘启动,在linux下怎么样制作win7的U盘启动?
- 谷歌json插件_没用过这7款浏览器插件,你一定是假的程序员
- 为什么用jdbc插入数据为空_为什么气象数据推荐用 ModelWhale 处理
- HALCON 21.11:深度学习笔记---模型(8)
- laravel-admin 使用记录(1) - 安装
- prisma graphql 工具基本使用
- P2234 [HNOI2002]营业额统计
- Android零基础入门第85节:Fragment使用起来非常简单