网课:[NOIP2017]奶酪——牛客(疑问)

news2024/11/18 23:29:27

链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
 

题目描述

现有一块大奶酪,它的高度为 h,它的长度和宽度我们可以认为是无限大的,奶酪中间有许多半径相同的球形空洞。我们可以在这块奶酪中建立空间坐标系, 在坐标系中,奶酪的下表面为 z = 0,奶酪的上表面为 z = h。
现在, 奶酪的下表面有一只小老鼠 Jerry, 它知道奶酪中所有空洞的球心所在的坐标。如果两个空洞相切或是相交,则 Jerry 可以从其中一个空洞跑到另一个空洞,特别地,如果一个空洞与下表面相切或是相交, Jerry 则可以从奶酪下表面跑进空洞; 如果一个空洞与上表面相切或是相交, Jerry 则可以从空洞跑到奶酪上表面。
位于奶酪下表面的 Jerry 想知道, 在不破坏奶酪的情况下,能否利用已有的空洞跑到奶酪的上表面去?
空间内两点 P1(x1,y1,z1) 、P2(x2,y2,z2) 的距离公式如下:

dist(P1,P2)=(x1−x2)2+(y1−y2)2+(z1−z2)2dist(P_1,P_2)=\sqrt{(x_1-x_2)^2+(y_1-y_2)^2+(z_1-z_2)^2}dist(P1​,P2​)=(x1​−x2​)2+(y1​−y2​)2+(z1​−z2​)2​

输入描述:

每个输入文件包含多组数据。
输入文件的第一行,包含一个正整数 T,代表该输入文件中所含的数据组数。
接下来是 T 组数据,每组数据的格式如下:
第一行包含三个正整数 n, h 和 r, 两个数之间以一个空格分开,分别代表奶酪中空洞的数量,奶酪的高度和空洞的半径。
接下来的 n 行,每行包含三个整数 x, y, z, 两个数之间以一个空格分开, 表示空洞球心坐标为 (x,y,z)。

输出描述:

输出文件包含 T 行,分别对应 T 组数据的答案,如果在第 i 组数据中, Jerry 能从下表面跑到上表面,则输出“Yes”,如果不能,则输出“No”(均不包含引号)。

示例1

输入

复制3 2 4 1 0 0 1 0 0 3 2 5 1 0 0 1 0 0 4 2 5 2 0 0 2 2 0 4

3
2 4 1
0 0 1
0 0 3
2 5 1
0 0 1
0 0 4
2 5 2
0 0 2
2 0 4

输出

复制Yes No Yes

Yes
No
Yes

说明

 

备注:

对于 20%的数据, n = 1, 1 ≤ h , r ≤ 10,000,坐标的绝对值不超过 10,000。
对于 40%的数据, 1 ≤ n ≤ 8, 1 ≤ h , r ≤ 10,000,坐标的绝对值不超过 10,000。
对于 80%的数据,1 ≤ n ≤ 1,000, 1 ≤ h , r ≤ 10,000,坐标的绝对值不超过 10,000。
对于 100%的数据, 1 ≤ n ≤ 1,000, 1 ≤ h , r ≤ 1,000,000,000, T ≤ 20,坐标的绝对值不超过 1,000,000,000。

想法:

本来没什么想法,不会,就想到怎么判断两个空洞是否连通(用距离公式求两球心的距离,再和2*r比较)。看了网课,听她讲了下思路,就是直接搜,能从下搜到上就说明是YES。先存一下通下表面的球心坐标,再循环分别从各个下表面出发搜索。然后终结条件就是球心z坐标加上r大于等于h。可是吧,超时了。

代码:

#include<bits/stdc++.h>
using namespace std;
int n,h,r;
int ans;
int qx[1010][5];//球心
int st[1010];
int xbm[1010][5];//下表面
void dfs(int x,int y,int z){
    if(z+r>=h){
        ans=1;
        return;
    }
    for(int i=1;i<=n;i++){//这么搜的话要先找出下表面已经通了的,然后再搜上去
        int s=sqrt((x-qx[i][0])*(x-qx[i][0])+(y-qx[i][1])*(y-qx[i][1])+(z-qx[i][2])*(z-qx[i][2]));
        if(st[i]) continue;
        if(s>2*r) continue;//不连通
        st[i]=1;
        dfs(qx[i][0],qx[i][1],qx[i][2]);
        st[i]=0;
    }
}
int main(){
    int t;
    cin>>t;
    while(t--){
        int cnt=0;
        memset(st,0,sizeof(st));
        ans=0;
        cin>>n>>h>>r;
        for(int i=1;i<=n;i++){
            cin>>qx[i][0]>>qx[i][1]>>qx[i][2];
            if(qx[i][2]<=r) {st[i]=1;xbm[cnt][0]=qx[i][0],xbm[cnt][1]=qx[i][1],xbm[cnt][2]=qx[i][2],cnt++;}//下表面的都标记一下
        }
        for(int i=0;i<cnt;i++){
            dfs(xbm[i][0],xbm[i][1],xbm[i][2]);
            if(ans==1) break;
        }
        if(ans==0) cout<<"No"<<endl;
        else cout<<"Yes"<<endl;
    }
}

睡醒看看用bfs行不行

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1443052.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

灰度发布浅见

在之前的稳定性生产文章中有一项对于研发人员比较重要的措施是变更管控&#xff0c;关于变更管控其实在实际生产活动中有很多措施&#xff0c;因为对于不太的行业&#xff0c;其行业特点和稳定性生产的要求也不一样&#xff0c;例如下图&#xff0c;我们可以看到信通院调研的不…

AJAX——AJAX入门

1 什么是AJAX&#xff1f; Ajax&#xff08;Asynchronous JavaScript and XML&#xff09;是一种用于在Web应用程序中实现异步通信的技术。 简单点说&#xff0c;就是使用XMLHttpRequest对象与服务器通信。它可以使用JSON、XML、HTML和test文本等格式发送和接收数据。 AJAX最吸…

vue3 之 商城项目—登陆

整体认识 登陆页面的主要功能就是表单校验和登陆登出业务 路由配置 模版 <script setup></script><template><div><header class"login-header"><div class"container m-top-20"><h1 class"logo"&g…

【开源】基于JAVA+Vue+SpringBoot的智慧社区业务综合平台

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 业务类型模块2.2 基础业务模块2.3 预约业务模块2.4 反馈管理模块2.5 社区新闻模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 业务类型表3.2.2 基础业务表3.2.3 预约业务表3.2.4 反馈表3.2.5 社区新闻表 四、系统展…

电子电器架构 —— 区域控制器是未来架构的正解吗?

电子电器架构 —— 区域控制器是未来架构的正解吗? 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师(Wechat:gongkenan2013)。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 本就是小人物,输了就是输了,不要在意别人怎么看自己。江湖一碗茶…

每日五道java面试题之java基础篇(一)

第一题 什么是java? PS&#xff1a;碎怂 Java&#xff0c;有啥好介绍的。哦&#xff0c;⾯试啊。 Java 是⼀⻔⾯向对象的编程语⾔&#xff0c;不仅吸收了 C语⾔的各种优点&#xff0c;还摒弃了 C⾥难以理解的多继承、指针等概念&#xff0c;因此 Java 语⾔具有功能强⼤和简单易…

中联重科舞动央视春晚舞台,长沙制造迎来高光时刻

文 | 螳螂观察 作者 | 陈淼 “龙行龘龘&#xff0c;欣欣家国”。癸卯兔年的腊月三十晚八点&#xff0c;央视龙年春晚如约而至。 这一次&#xff0c;龙年春晚以北京为主会场&#xff0c;联动辽宁沈阳、湖南长沙、陕西西安、新疆喀什&#xff0c;在除夕为全球华人奉上了精彩演…

基于 multiprocessing.dummy 的多线程池与单线程访问多网页的比较示例

一、示例代码&#xff1a; from multiprocessing.dummy import Pool as ThreadPool import time import requestsurls [ # URL队列&#xff0c;通过多线程访问http://www.python.org,http://www.python.org/about/,http://www.…

三、搜索与图论

DFS 排列数字 #include<iostream> using namespace std; const int N 10; int a[N], b[N]; int n;void dfs(int u){if(u > n){for(int i 1; i < n; i)cout<<a[i]<<" ";cout<<endl;return;}for(int i 1; i < n; i){if(!b[i]){b[…

ubuntu篇---ubuntu安装python3.9

ubuntu篇—ubuntu安装python3.9 在ubuntu上安装Python有两种方法:在线安装和源码编译安装。 方法1&#xff1a;使用apt在线安装 1.更新软件包列表并安装必备组件&#xff1a; $ sudo apt update $ sudo apt install software-properties-common2.将Deadsnakes PPA添加到系统…

LLM之LangChain(七)| 使用LangChain,LangSmith实现Prompt工程ToT

如下图所示&#xff0c;LLM仍然是自治代理的backbone&#xff0c;可以通过给LLM增加以下模块来增强LLM功能: Prompter AgentChecker ModuleMemory moduleToT controller 当解决具体问题时&#xff0c;这些模块与LLM进行多轮对话。这是基于LLM的自治代理的典型情况&#xff0c;…

AutoSAR(基础入门篇)7.1-汽车电子开发软件DaVinci Developer界面简介

目录 一、Dev界面简介 二、Dev使用流程简介 一、Dev界面简介 经典的是更老的版本,博主这里用的是较新一点的版本,不过大家不必担心版本问题,因为操作几乎都一样。我们先简单浏览一遍这个界面,大致从 上往下看可以分为这么几部分: 1. 导航栏:File那一排 2. 工具栏&…

门诊单据打印用什么软件,线下处方单生成系统教程

门诊单据打印用什么软件&#xff0c;线下处方单生成系统教程 一、前言 以下软件教程以 佳易王诊所电子处方管理系统软件V17.3为例说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 如上图&#xff0c;电子处方或病历记录开单生成保存后&#xff0c;可…

每日五道java面试题之java基础篇(三)

第一题. switch 是否能作⽤在 byte/long/String 上&#xff1f; Java5 以前 switch(expr)中&#xff0c;expr 只能是 byte、short、char、int。从 Java 5 开始&#xff0c;Java 中引⼊了枚举类型&#xff0c; expr 也可以是 enum 类型。从 Java 7 开始&#xff0c;expr 还可以…

序列流和反序列流

先看看它们在io体系中的位置&#xff1a;--------------------------------------------------------------------------------- 序列化流&#xff1a; 可以将java中的对象写到本地文件中&#xff0c;如这样的数据写到文件后变成这样----->目的就是防止别人看得懂&#xff…

解决“使用Edge浏览器每次鼠标点击会出现一个黑色边框”的问题

目录 一 问题描述 二 解决方案 三 方案来源 四 参考资料 & AI工具 一 问题描述 为了方便进行收藏夹同步&#xff0c;开始从Chrome浏览器切换到Edge浏览器。在使用Edge浏览器过程中发现“每次鼠标点击会出现一个黑色边框”&#xff08;效果如下图所示&#xff09;&#…

tkinter-TinUI-xml实战(10)展示画廊

tkinter-TinUI-xml实战&#xff08;10&#xff09;展示画廊 引言声明文件结构核心代码主界面统一展示控件控件展示界面单一展示已有展示多类展示 最终效果在这里插入图片描述 ![](https://img-blog.csdnimg.cn/direct/286fcaa2fa5648a992a0ac79b4efad82.png) ………… 结语 引言…

【Larry】英语学习笔记语法篇——换一种方式理解词性

目录 一、换一种方式理解词性 1、名词、形容词、副词&#xff0c;这就是一切 2、词性之间的修饰关系 3、介词其实很简单 形容词属性的介词短语 副词属性的介词短语 ①修饰动词 ②修饰形容词 ③修饰其他副词 一、换一种方式理解词性 1、名词、形容词、副词&#xff0c…

服务器内存使用率多少会影响正常访问?

在探讨服务器内存使用率多少会影响正常访问这个问题时&#xff0c;我们首先要明白&#xff0c;服务器的性能和稳定性与内存使用状况息息相关。当服务器的内存使用率过高时&#xff0c;可能会导致系统运行缓慢、程序崩溃或者出现其他一些异常情况&#xff0c;从而影响到正常的网…

Mysql-数据库优化-客户端连接参数

客户端参数 原文地址 # 连接池配置 # 初始化连接数 spring.datasource.druid.initial-size1 # 最小空闲连接数&#xff0c;一般设置和initial-size一致 spring.datasource.druid.min-idle1 # 最大活动连接数&#xff0c;一个数据库能够支撑最大的连接数是多少呢&#xff1f; …