蓝桥杯 小生物的逃逸 模拟
时间:2020-04-01
本文章向大家介绍蓝桥杯 小生物的逃逸 模拟,主要包括蓝桥杯 小生物的逃逸 模拟使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
问题描述
空间中有n个球,这些球不相交也不相切。有m个可以视为质点的小生物,可能在某些球内,也可能在所有球之外,但不会在球面上。问这些生物从原来的地方逃逸到所有球外面的空间,至少要经过多少层球面。
输入格式
第一行两个数n、m:表示球的数量和小生物的数量;
接下来n行每行四个整数Xi、Yi、Zi和Ri:表示一个球的三维坐标和半径;
接下来m行每行三个整数Xi、Yi、Zi:表示一个生物的坐标。
接下来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
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;
数据保证所有球严格不接触,小生物都不在球面上。
数据保证所有球严格不接触,小生物都不在球面上。
数学公式忘记了...
二维两点之间距离公式:
三维两点之间距离公式:
1 #include <bits/stdc++.h> 2 using namespace std; 3 int main() { 4 int n, m; 5 cin >> n >> m; 6 int n_x[105], n_y[105], n_z[105], R[105]; 7 int m_x[105], m_y[105], m_z[105]; 8 for (int i = 0; i < n; i++) { //输入各个球圆心的坐标和半径 9 cin >> n_x[i] >> n_y [i] >> n_z[i] >> R[i]; 10 } 11 for (int i = 0; i < m; i++) { 12 cin >> m_x[i] >> m_y[i] >> m_z[i]; //输入每个生物的坐标 13 } 14 for (int i = 0; i < m; i++) { //枚举每个生物 15 int ans = 0; 16 for (int j = 0; j < n; j++) { //枚举每个球 17 int x, y, z; 18 x = abs(m_x[i] - n_x[j]); 19 y = abs(m_y[i] - n_y[j]); 20 z = abs(m_z[i] - n_z[j]); 21 //计算每个生物到每个球圆心的距离来判断在不在这个球内 22 if (sqrt(x * x + y * y + z * z) < R[j]) { //在球内次数加一 23 ans++; 24 } 25 } 26 cout << ans << " "; 27 } 28 return 0; 29 }
原文地址:https://www.cnblogs.com/fx1998/p/12614177.html
- Python 迭代(iteration)
- Python 切片(Slice)
- Python函数参数总结(位置参数、默认参数、可变参数、关键字参数和命名关键字参数)
- linux学习第二十七篇:使用w查看系统负载,vmstat,top,sar,nload命令
- Python 函数
- Python set(集合) 这一定是最全的介绍集合的博文
- Spark你一定学得会(二)No.8
- Python dict(字典)
- Python 条件判断
- linux学习第二十五篇:cut,sort,wc,uniq,tee,tr,split命令,shell特殊符号
- Python list(列表)
- linux学习第三十篇:iptables filter表小案例,iptables nat表应用
- Python tuple(元组)
- 手把脚教你实现第一个在线预测系统No.21
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android | Tangram动态页面之路(五)Tangram原理
- Android | Tangram动态页面之路(六)数据分离
- 在 mono 下使用微软的 OWIN 认证中间件
- 重温四大基础数据结构:数组、链表、队列和栈
- C# 程序在 Docker 中响应 Unix 信号
- Android | Tangram动态页面之路(七)硬核的Virtualview
- Spark SQL如何选择join策略
- 江湖事儿 | 技术人如何做好晋升准备
- Dockerfile 的 ENTRYPOINT 与 CMD
- Docker Entry Script 详解
- 使用 docker-compose 替代 docker run
- 分享给您一个快速离职的 SHELL 脚本
- ASP.NET WebAPI 中的参数绑定
- Qt音视频开发7-ffmpeg音频播放
- 本地 Docker Registry 的安装与使用