蓝桥杯练习系统(算法训练)ALGO-953 混合积

资源限制

内存限制:256.0MB   C/C++时间限制:1.0s   Java时间限制:3.0s   Python时间限制:5.0s

问题描述

  众所周知,人人都在学习线性代数,既然都学过,那么解决本题应该很方便。
  宇宙大战中,qdc在其中建立了许多空间站,这些空间站散落在三维空间中,并且由于宇宙之大,空间站完全可以抽象为一个质点。为了达到毁灭性攻击,qdc可以选择其中4个空间站,然后炸毁其形成的平行六面体空间(如图)。既然是毁灭性的打击,六面体自然要有大的体积,即使他会炸毁自己的空间站。胜利掌握在你的手中,你来编写一个程序输出这个最大的体积。

输入格式

  第一行输入一个数,表示空间站数目。
  接下来每行三个数,表示这些空间站的三维坐标。

输出格式

  一个数字如题所述。

样例输入

4
0 0 0
0 0 1
0 1 0
2 0 0

样例输出

2

数据规模和约定

  对于30%的数据n<=5
  对于100%的数据4<=n<=10
  |xi|,|yi|,|zi|<=512

#include<iostream>
#include<math.h>
using namespace std;
typedef struct Point{
	int x;
	int y;
	int z;
}Point;
Point point[11];
int ans=0;
int main(){
	int n;
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>point[i].x>>point[i].y>>point[i].z;
	} 
	for(int i=1;i<=n;i++){
		for(int j=i+1;j<=n;j++){
			for(int k=j+1;k<=n;k++){
				for(int l=k+1;l<=n;l++){
					//求出向量a,b,c,利用混合积:a叉乘b点乘c 
					int ax=point[j].x-point[i].x;
					int ay=point[j].y-point[i].y;
					int az=point[j].z-point[i].z;
					
					int bx=point[k].x-point[i].x;
					int by=point[k].y-point[i].y;
					int bz=point[k].z-point[i].z;
					
					int cx=point[l].x-point[i].x;
					int cy=point[l].y-point[i].y;
					int cz=point[l].z-point[i].z;
					
					int res=abs(ax*by*cz+ay*bz*cx+az*bx*cy-az*by*cx-bz*cy*ax-cz*ay*bx);
					ans=max(res,ans);
					
				}
			}
		}
	}
	cout<<ans<<endl;
	return 0;
} 

思路:四个点可以确定一个六面体的体积,因此在n个点中挑4个点即可,和顺序无关。利用4层for循环来选择4个点,使用混合积求体积。 

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-01 18:30:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-01 18:30:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-05-01 18:30:03       87 阅读
  4. Python语言-面向对象

    2024-05-01 18:30:03       96 阅读

热门阅读

  1. 学习mysql相关知识记录

    2024-05-01 18:30:03       33 阅读
  2. 大模型LoRA微调调参的实战技巧

    2024-05-01 18:30:03       36 阅读
  3. 在编程中,方法和函数都是什么意思

    2024-05-01 18:30:03       33 阅读
  4. C语言创建文件夹和多级目录

    2024-05-01 18:30:03       33 阅读
  5. DB-GPT源码阅读1-数据库表读取

    2024-05-01 18:30:03       32 阅读
  6. 2024 c/c++A组填空第一题--选择与篮球

    2024-05-01 18:30:03       30 阅读
  7. 网络安全思考题

    2024-05-01 18:30:03       35 阅读
  8. 自动化测试——Selenium

    2024-05-01 18:30:03       32 阅读
  9. C++临时对象的产生及优化

    2024-05-01 18:30:03       23 阅读
  10. 【Python】pandas.cut()函数的用法

    2024-05-01 18:30:03       34 阅读
  11. Python 发送钉钉消息(markdown格式)

    2024-05-01 18:30:03       35 阅读