CSP-CCF 202009-1 检测点查询

news2024/11/15 15:59:14

一、问题描述

二、解答

提醒:本题不宜开方,距离间的比较用平方来比较更好

思路:使用三次for循环,逐一找到最小、第二小、第三小

注:这里用到了limits.h头文件,里面包含了int的最大值INT_MAX

#include<iostream>
#include<math.h>
#include <limits.h>
int d[201] = { 0 };
int dx[201] = { 0};
int dy[201] = { 0 };
int disMin1 = INT_MAX;
int disMin2 = INT_MAX;
int disMin3 = INT_MAX;
//在C++中,INT_MAX和 INT_MIN 这些宏定义存储在 limits.h 或者 climits 头文件中
using namespace std;
int main()
{
	int n, X, Y;
	cin >> n >> X >> Y;
	int x[201] = { 0.0 };
	int y[201] = { 0.0 };
	for (int i = 1; i <= n; i++)
	{
		cin >> x[i] >> y[i];
	}
	int min1 = 0;
	int min2 = 0;
	int min3 = 0;
	for (int i = 1; i <= n; i++)
	{
		dx[i] = X - x[i];
		dy[i] = Y - y[i];
		d[i] = pow(dx[i],2) + pow(dy[i],2);
		if (d[i] < disMin1)
		{
			disMin1 = d[i];
			min1 = i;
		}
	}
	cout << min1 << endl;
	for (int i = 1; i <= n; i++)
	{
		dx[i] = X - x[i];
		dy[i] = Y - y[i];
		d[i] = pow(dx[i], 2) + pow(dy[i], 2);
		//不能开方,因为由给出的样例输出2,根号2和1系统都会记成1
		//即使换成double类型也不行,会导致最终结果错误
		if (d[i] < disMin2 && i != min1)
		{
			disMin2 = d[i];
			min2 = i;
		}
	}
	cout << min2 << endl;
	for (int i = 1; i <= n; i++)
	{
		dx[i] = X - x[i];
		dy[i] = Y - y[i];
		d[i] = pow(dx[i], 2) + pow(dy[i], 2);
		if (d[i] < disMin3 && i != min1 && i != min2)
		{
			disMin3 = d[i];
			min3 = i;
		}
	}
	cout << min3 << endl;
	return 0;
}

另外,还可以通过构造结构体,使用冒泡排序(Bubble Sort)、插入排序(Insertion Sort)、归并排序(Merge Sort)等排序方法进行排序输出。

可以参考之前看到的博客:csp 20-09-01称检测点查询 & 02风险人群筛查_检测点查询csp-CSDN博客

三、总结

本题我的思路、代码一开始是对的,但是这道题目仍然花费了我不少时间。原因在于我测试样例2的时候,给出的结果一直是1、2、3,我一直以为是我的思路出现了问题,但是想了无数遍、也问了AI无数遍,仍然没发现我的逻辑上有什么问题。最后的最后,我突然想到样例2中的根号2是1.414,四舍五入保留整数是1,显然这样与后面的1一样,就会导致最后的结果出错。于是,我将int类型全部换成了double类型,还是不行。所以,我没有再用sqrt()函数,直接求距离的平方而非距离,这样一来结果果然正确了。

通过本题,我仍然觉得:考虑问题要全面,并且要学会灵活变通。同时我也知道了:我发现问题的能力弱了点,花了那么长时间,才知道到底不对在哪里,但庆幸的是最后还是发现了是哪里出了问题,不然真是竹篮打水一场空了。

另外,我还得出经验:CCF题目所给出的样例以及其他提示非常有用,可以极大帮助我们理解题目意思并找到合适的方法,所以万万不能轻视它而一意孤行,导致耽误很长时间。

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

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

相关文章

搭建企业博客:塑造品牌可信度与优化SEO的利器

引言 在数字化时代&#xff0c;信息的传播速度超乎想象&#xff0c;企业如何在这个信息爆炸的环境中脱颖而出&#xff0c;成为连接消费者、塑造品牌形象的关键。企业博客&#xff0c;作为一种低成本、高效率的营销与沟通工具&#xff0c;正逐渐成为企业策略中不可或缺的一环。…

阅读台灯什么品牌好?不良商家最常用的四大阅读台灯套路,需警惕

阅读台灯什么品牌好&#xff1f;市场上的护眼台灯种类繁多&#xff0c;众多选择中不乏以低价吸引消费者的产品&#xff0c;这也导致了部分家长对于护眼台灯的价值产生了质疑&#xff0c;认为它们不过是不必要的开销。确实&#xff0c;一些低质的护眼灯不仅使用了劣质材料&#…

利用minikube部署k8s集群并部署lnmp服务

部署minikube 参考官网进行安装部署 利用minikube部署k8s集群 1. 部署k8s集群 minikube start k8s集群部署lnmp 1. 将如下内容存储为lnmp.yaml文件 --- apiVersion: v1 kind: Namespace metadata: name: lnmp --- apiVersion: v1 kind: PersistentVolumeClaim metadata: na…

请注意,这是第一届程序化售卖广告的奥运会

作者&#xff1a;刀客doc 巴黎奥运会收官了。很多人在谈郑钦文的商业价值、哪个品牌押中了奥运冠军时&#xff0c;却忽略了一个新闻&#xff1a; 这是第一届程序化售卖广告的奥运会&#xff1a;NBC环球通过旗下的流媒体平台 Peacock&#xff0c;以程序化方式销售巴黎奥运会期…

基于java的私人牙科诊所管理系统

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于java的私人牙科诊所管理系统,java项…

文心一言 VS 讯飞星火 VS chatgpt (325)-- 算法导论22.5 1题

一、如果在图G中加入一条新的边&#xff0c;G中的强连通分量的数量会发生怎样的变化&#xff1f;如果要写代码&#xff0c;请用go语言。 文心一言&#xff1a; 在图G中加入一条新的边&#xff0c;其对强连通分量&#xff08;Strongly Connected Components, SCCs&#xff09;…

海量数据处理商用短链接生成器平台 - 1

第一章 海量数据处理商用短链接生成器平台介绍 第1集 什么是短链接生成器 短链接生成器是一种工具&#xff0c;可以将较长的链接转换成较短的链接。这种工具在许多场景中都很有用&#xff0c;包括营销、社交媒体分享和数据报告等。以下是一些关于短链接生成器的优点和作用&…

VS实用调试技巧(程序员的必备技能)

调试的重要性 在我们写代码的时候&#xff0c;如果程序出现了bug&#xff0c;那么下一步就是找到bug并修复bug!而这个找问题的过程就被称为调试&#xff08;英文叫debug&#xff0c;消灭bug的意思&#xff09;。 调试能观察到程序内部执行的细节&#xff0c;可以增加程序员对…

5大低代码开源平台案例研究

在当今快速发展的数字化时代&#xff0c;企业面临着越来越复杂的技术挑战和市场竞争。为了保持竞争力并加速业务创新&#xff0c;许多公司正在转向低代码开源平台。然而&#xff0c;选择合适的低代码平台并将其成功实施&#xff0c;依然是一个挑战。 本文将深入探讨五个成功案…

OpenAI gym: How to get pixels in CartPole-v0

题意&#xff1a;OpenAI Gym&#xff1a;如何在 CartPole-v0 中获取像素&#xff1f; 问题背景&#xff1a; I would like to access the raw pixels in the OpenAI gym CartPole-v0 environment without opening a render window. How do I do this? 我想在 OpenAI Gym 的 …

RAC11G场景下OLR文件丢失导致节点GI无法启动

环境说明 RHEL7.911.2.0.4 RAC&#xff0c;双节点。 问题描述 巡检发现节点2的GI无法启动&#xff0c;发现是olr文件丢失导致。 问题复现 故意把OLR删掉&#xff0c;重启后发现GI无法启动 查看/etc/oracle/olr.loc --查看/etc/oracle/olr.loc 该文件记录有olr文件位置和…

密探 -- 渗透测试工具 v1.14 版

1.如何运行 在jdk8环境下&#xff08;在jdk8以上的高版本请参考常见问题1的处理方案&#xff09;运行以下语句运行: java -jar mitan-jar-with-dependencies.jar 若不想输入这么长太长语句&#xff0c;可以通过以下脚本的方式启动&#xff1a; Mac/Linux 环境下&#xff0c;…

计算机网络——运输层(进程之间的通信、运输层端口,UDP与TCP、TCP详解)

运输层协议概述 进程之间的通信 运输层向它上面的应用层提供通信服务。 当网络边缘部分的两台主机使用网络核心部分的功能进行端到端的通信时&#xff0c;都要使用协议栈中的运输层&#xff1b;而网络核心部分中的路由器在转发分组时只用到下三层的功能。 Q1&#xff1a;我们…

【最短路径算法】

每日格言&#xff1a;想去的地方很遥远&#xff0c;我们也只能自己走 前言 最短路径算法是一类用于解决图中两点间寻找最短路径问题的算法。这里我们只具体介绍利用matlab中的函数实现&#xff0c;迪克斯特拉算法和弗洛伊德算法大家有兴趣可上网了解一下。这类算法在多个领域都…

安全稳定的镭速高端制造业文件传输摆渡系统

在现代制造业的高速发展中&#xff0c;高端制造领域尤为依赖高效的文件传输系统&#xff0c;这类系统不仅促进了企业内部的合作&#xff0c;还加强了与合作伙伴的紧密联系&#xff0c;成为推动创新和决策的关键因素。镭速文件传输系统正是为了满足这一需求而设计&#xff0c;其…

KamaCoder 102. 沉没孤岛

题目描述&#xff1a; 给定一个由 1&#xff08;陆地&#xff09;和 0&#xff08;水&#xff09;组成的矩阵&#xff0c;岛屿指的是由水平或垂直方向上相邻的陆地单元格组成的区域&#xff0c;且完全被水域单元格包围。孤岛是那些位于矩阵内部、所有单元格都不接触边缘的岛屿…

如何做好小程序评论优化

用户在决定要不要用一个小程序时&#xff0c;往往会参考其他用户的评分和评论。因此小程序评论优化是提升用户互动和口碑传播的关键环节。以下是一些针对小程序评论优化的具体策略&#xff1a; 1. 优化评论区设计 确保用户能够轻松找到并访问评论区。可以在小程序的显眼位置设…

netassist TCP测试工具使用

写在前面 有时工作中我们编写一些tcp相关的程序&#xff0c;而netassist就是这样一款辅助我们进行TCP功能测试的工具&#xff0c;你可以从这里下载。 1&#xff1a;使用 我们需要一个server程序&#xff0c;可以参考这篇文章&#xff0c;启动server后&#xff0c;就可以使用…

集美大学携手和鲸与龙船,深化“航运+AI”学科建设,赋能航海人才培养

“闽国扬帆去&#xff0c;蟾蜍亏复圆。” ——唐贾岛 《忆江上吴处士》 人类探索海洋的脚步从未停止。昔日&#xff0c;闽地的先民眺望浩瀚大海&#xff0c;叹其无垠难测&#xff1b;如今&#xff0c;海洋科学与人工智能的交叉融合正引领着新一轮的探索浪潮&#xff0c;成为不…

智能学习系统

摘 要 随着信息技术和网络技术的飞速发展&#xff0c;人类已进入全新信息化时代&#xff0c;传统管理技术已无法高效&#xff0c;便捷地管理信息。为了迎合时代需求&#xff0c;优化管理效率&#xff0c;各种各样的智能学习系统应运而生&#xff0c;各行各业相继进入信息管理时…