蓝桥杯 算法训练 小生物的逃逸(球坐标公式+暴力求解)

简介: 蓝桥杯 算法训练 小生物的逃逸(球坐标公式+暴力求解)

资源限制


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


问题描述


 空间中有n个球,这些球不相交也不相切。有m个可以视为质点的小生物,可能在某些球内,也可能在所有球之外,但不会在球面上。问这些生物从原来的地方逃逸到所有球外面的空间,至少要经过多少层球面。


输入格式


 第一行两个数n、m:表示球的数量和小生物的数量;

 接下来n行每行四个整数Xi、Yi、Zi和Ri:表示一个球的三维坐标和半径;

 接下来m行每行三个整数Xi、Yi、Zi:表示一个生物的坐标。


输出格式


 一行m个数:表示每个小生物逃逸时至少经过的球面数。


样例输入


2 2

0 0 0 2

0 0 0 4

0 0 1

0 0 3


样例输出


2 1


数据规模和约定


 1<=n、m<=100,|Xi|、|Yi|、|Zi|<=10000,1<=Ri<=10000;

 数据保证所有球严格不接触,小生物都不在球面上。


题解:

#include <iostream>
using namespace std;
struct ball {
  int x;
  int y;
  int z;
  int ri = 0;//这里我们计算虫子的时候作为标尺,所以要置0;
};
struct ball ball[100];//定义球数组
struct ball Biol[100];//定义虫数组
int main() {
  int n, m;
  cin >> n >> m;
  for (int i = 0; i < n; i++) {
    cin >> ball[i].x;
    cin >> ball[i].y;
    cin >> ball[i].z;
    cin >> ball[i].ri;
  }
  for (int i = 0; i < m; i++) {
    cin >> Biol[i].x;
    cin >> Biol[i].y;
    cin >> Biol[i].z;
  }
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) {
      int xi = (Biol[j].x - ball[i].x) * (Biol[j].x - ball[i].x);
      int yi = (Biol[j].y - ball[i].y) * (Biol[j].y - ball[i].y);
      int zi = (Biol[j].z - ball[i].z) * (Biol[j].z - ball[i].z);
      if (xi + yi + zi <= ball[i].ri * ball[i].ri) {//数学公式,(xBioli - xballi)^2+
//(yBioli - yballi)^2 + (zBioli - zballi)^2 <= ball[i].ri^2;即在球内。
        Biol[j].ri++;
      }
    }
  }
  for (int i = 0; i < m; i++) {
    cout << Biol[i].ri<<' ';
  }
  return 0;
}
相关文章
|
5天前
|
机器学习/深度学习 算法
扩散模型=进化算法!生物学大佬用数学揭示本质
在机器学习与生物学交叉领域,Tufts和Harvard大学研究人员揭示了扩散模型与进化算法的深刻联系。研究表明,扩散模型本质上是一种进化算法,通过逐步去噪生成数据点,类似于进化中的变异和选择机制。这一发现不仅在理论上具有重要意义,还提出了扩散进化方法,能够高效识别多解、处理高维复杂参数空间,并显著减少计算步骤,为图像生成、视频合成及神经网络优化等应用带来广泛潜力。论文地址:https://arxiv.org/pdf/2410.02543。
31 21
|
4月前
|
Python
蓝桥杯练习题(一):Python组之入门训练题
这篇文章是关于蓝桥杯Python组的入门训练题,包括Fibonacci数列、圆的面积、序列求和和A+B问题的具体代码实现和样例输出。
173 0
|
28天前
|
算法 搜索推荐 Java
【潜意识Java】深度解析黑马项目《苍穹外卖》与蓝桥杯算法的结合问题
本文探讨了如何将算法学习与实际项目相结合,以提升编程竞赛中的解题能力。通过《苍穹外卖》项目,介绍了订单配送路径规划(基于动态规划解决旅行商问题)和商品推荐系统(基于贪心算法)。这些实例不仅展示了算法在实际业务中的应用,还帮助读者更好地准备蓝桥杯等编程竞赛。结合具体代码实现和解析,文章详细说明了如何运用算法优化项目功能,提高解决问题的能力。
58 6
|
28天前
|
算法 Java C++
【潜意识Java】蓝桥杯算法有关的动态规划求解背包问题
本文介绍了经典的0/1背包问题及其动态规划解法。
48 5
|
4月前
|
算法 测试技术 C++
【动态规划算法】蓝桥杯填充问题(C/C++)
【动态规划算法】蓝桥杯填充问题(C/C++)
|
8月前
|
存储 机器学习/深度学习 算法
第十五届蓝桥杯pb组国赛E题[马与象] (15分)BFS算法 详解
第十五届蓝桥杯pb组国赛E题[马与象] (15分)BFS算法 详解
106 3
|
4月前
|
存储 机器学习/深度学习 算法
蓝桥杯练习题(三):Python组之算法训练提高综合五十题
蓝桥杯Python编程练习题的集合,涵盖了从基础到提高的多个算法题目及其解答。
163 3
蓝桥杯练习题(三):Python组之算法训练提高综合五十题
|
3月前
|
分布式计算 Java 开发工具
阿里云MaxCompute-XGBoost on Spark 极限梯度提升算法的分布式训练与模型持久化oss的实现与代码浅析
本文介绍了XGBoost在MaxCompute+OSS架构下模型持久化遇到的问题及其解决方案。首先简要介绍了XGBoost的特点和应用场景,随后详细描述了客户在将XGBoost on Spark任务从HDFS迁移到OSS时遇到的异常情况。通过分析异常堆栈和源代码,发现使用的`nativeBooster.saveModel`方法不支持OSS路径,而使用`write.overwrite().save`方法则能成功保存模型。最后提供了完整的Scala代码示例、Maven配置和提交命令,帮助用户顺利迁移模型存储路径。
|
4月前
|
机器学习/深度学习 算法 决策智能
【机器学习】揭秘深度学习优化算法:加速训练与提升性能
【机器学习】揭秘深度学习优化算法:加速训练与提升性能
|
4月前
|
算法 Java C++
【贪心算法】算法训练 ALGO-1003 礼物(C/C++)
【贪心算法】算法训练 ALGO-1003 礼物(C/C++)
【贪心算法】算法训练 ALGO-1003 礼物(C/C++)