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

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

资源限制


内存限制: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;
}
相关文章
|
2月前
|
Python
蓝桥杯练习题(一):Python组之入门训练题
这篇文章是关于蓝桥杯Python组的入门训练题,包括Fibonacci数列、圆的面积、序列求和和A+B问题的具体代码实现和样例输出。
142 0
|
2月前
|
算法 测试技术 C++
【动态规划算法】蓝桥杯填充问题(C/C++)
【动态规划算法】蓝桥杯填充问题(C/C++)
|
6月前
|
机器学习/深度学习 人工智能 算法
海洋生物识别系统+图像识别+Python+人工智能课设+深度学习+卷积神经网络算法+TensorFlow
海洋生物识别系统。以Python作为主要编程语言,通过TensorFlow搭建ResNet50卷积神经网络算法,通过对22种常见的海洋生物('蛤蜊', '珊瑚', '螃蟹', '海豚', '鳗鱼', '水母', '龙虾', '海蛞蝓', '章鱼', '水獭', '企鹅', '河豚', '魔鬼鱼', '海胆', '海马', '海豹', '鲨鱼', '虾', '鱿鱼', '海星', '海龟', '鲸鱼')数据集进行训练,得到一个识别精度较高的模型文件,然后使用Django开发一个Web网页平台操作界面,实现用户上传一张海洋生物图片识别其名称。
211 7
海洋生物识别系统+图像识别+Python+人工智能课设+深度学习+卷积神经网络算法+TensorFlow
|
6月前
|
存储 机器学习/深度学习 算法
第十五届蓝桥杯pb组国赛E题[马与象] (15分)BFS算法 详解
第十五届蓝桥杯pb组国赛E题[马与象] (15分)BFS算法 详解
68 3
|
2月前
|
存储 机器学习/深度学习 算法
蓝桥杯练习题(三):Python组之算法训练提高综合五十题
蓝桥杯Python编程练习题的集合,涵盖了从基础到提高的多个算法题目及其解答。
123 3
蓝桥杯练习题(三):Python组之算法训练提高综合五十题
|
1月前
|
分布式计算 Java 开发工具
阿里云MaxCompute-XGBoost on Spark 极限梯度提升算法的分布式训练与模型持久化oss的实现与代码浅析
本文介绍了XGBoost在MaxCompute+OSS架构下模型持久化遇到的问题及其解决方案。首先简要介绍了XGBoost的特点和应用场景,随后详细描述了客户在将XGBoost on Spark任务从HDFS迁移到OSS时遇到的异常情况。通过分析异常堆栈和源代码,发现使用的`nativeBooster.saveModel`方法不支持OSS路径,而使用`write.overwrite().save`方法则能成功保存模型。最后提供了完整的Scala代码示例、Maven配置和提交命令,帮助用户顺利迁移模型存储路径。
|
2月前
|
机器学习/深度学习 算法 决策智能
【机器学习】揭秘深度学习优化算法:加速训练与提升性能
【机器学习】揭秘深度学习优化算法:加速训练与提升性能
|
2月前
|
算法 Java C++
【贪心算法】算法训练 ALGO-1003 礼物(C/C++)
【贪心算法】算法训练 ALGO-1003 礼物(C/C++)
【贪心算法】算法训练 ALGO-1003 礼物(C/C++)
|
2月前
|
算法 C++
蓝桥 算法训练 共线(C++)
蓝桥 算法训练 共线(C++)
|
4月前
|
机器学习/深度学习 算法 数据挖掘
【机器学习】聚类算法中的距离度量有哪些及公式表示?
聚类算法中常用的距离度量方法及其数学表达式,包括欧式距离、曼哈顿距离、切比雪夫距离、闵可夫斯基距离、余弦相似度等多种距离和相似度计算方式。
412 1