[编程题] 寻找三角形
三维空间中有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;
}
[编程题] 寻找三角形相关推荐
- 网易2016 实习研发工程师 [编程题]寻找第K大 and leetcode 215. Kth Largest Element in an Array...
传送门 有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数. 给定一个整数数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的数,保证答案存在. 测试样例: [1,3,5, ...
- 网易2016实习研发工程师编程题——寻找第K大
1.题目 有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数. 给定一个整数数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的数,保证答案存在. 测试样例: [1,3,5 ...
- 3、寻找三角形--百度2017春招
[编程题] 寻找三角形 时间限制:1秒 空间限制:32768K 三维空间中有N个点,每个点可能是三种颜色的其中之一,三种颜色分别是红绿蓝,分别用'R', 'G', 'B'表示. 现在要找出三个点,并 ...
- 判断三角形java代码_java基础编程题之异常处理
以下是刚开始学习java的基础编程题,每天持续更新java每个知识点的题目,持续练习,不断提高java基本功,培养编程能力.今天的练习的十八题是java的异常处理的使用. 1.检测年龄不能为负数和大于 ...
- java语言编程三角形图形_编程题:编写程序输入三角形的3条边长,计算并输出... 求助一道JAVA编程题:编写一个类似记事本的图形用......
导航:网站首页 > 编程题:编写程序输入三角形的3条边长,计算并输出... 求助一道JAVA编程题:编写一个类似记事本的图形用... 编程题:编写程序输入三角形的3条边长,计算并输出... 求助 ...
- 沈师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 洗牌在生活中十分常见,现在需要写一个程序模拟洗牌的过程 ...
最新文章
- java.lang.ClassCastException: [B cannot be cast to java.lang.String
- jquery-nodejs-安装与测试
- 黑马 程序员——Java基础---IO(下)
- Java同步组件之Condition,FutureTask
- python怎么导入txt文件-python – 如何一次读取和附加到文本文件?
- Linux shell 查找操作
- 风火编程--繁体转简体
- CI框架redirect自动加上了index.php问题
- linux修改文件权限为所有人都可以访问,Linux 笔记分享八:文件权限的设定
- hd620显卡linux驱动,Thinkpad T480 Win7 安装 INTEL HD620显卡驱动
- cloudfare dns_Cloudflare配置动态dns(ddns)
- 金职院计算机网络技术中外合作有什么不一样,金华职业技术学院学费多少
- SpringBoot整合redis——redisTemplate,RedisUtil的使用!
- 菜鸟到大神的上位历程,即学即用走向人生巅峰
- Pyqt qtableview 大量动态刷新数据
- 论文:预测原子距离进行构象预测(VAE)
- 百度快照排名推广如何优化?
- 浅入浅出Oracle Spatial GeoRaster 10g影像数据管理(2)
- 坐标移动c语言,C语言 坐标移动详解及实例代码
- 使用O2OA(翱途)体验人力资源管理系统