蓝桥杯每日真题 - 第23天

题目:(直线)

题目描述(12届 C&C++ B组C题)

解题思路:

  1. 题目理解:

    • 在平面直角坐标系中,从给定的点集中确定唯一的直线。

    • 两点确定一条直线,判断两条直线是否相同,可通过它们的斜率 aaa 和截距 bbb 进行唯一标识。

  2. 优化判断:

    • 直线的唯一性可通过公式计算得到斜率 a = \frac{y_2 - y_1}{x_2 - x_1}和截距b = \frac{x_1 y_2 - x_2 y_1}{x_2 - x_1}

    • 对每一对点,判断是否出现过相同的 (a,b),如果没有,存储下来。

  3. 特殊情况:

    • 垂直线(即 x1=x2)和水平线(即 y1=y2​)需要单独处理。

  4. 复杂度:

    • 遍历所有点对的组合,时间复杂度为 O(n^2),其中 n 为点的数量。题目给出的范围使得暴力解法可行。

代码实现(C语言):

#include <stdio.h>int n = 0;
double ab[100000][2] = {{0}, {0}};int fun(int x0, int y0, int x1, int y1) {double a = (y0 - y1) * 1.0 / (x0 - x1);double b = (x0 * y1 - x1 * y0) * 1.0 / (x0 - x1);for (int i = 0; i < n; i++) {if (ab[i][0] == a && ab[i][1] == b) return 0;}ab[n][0] = a;ab[n][1] = b;n++;return 1;
}int main() {for (int x0 = 0; x0 < 20; x0++) {for (int y0 = 0; y0 < 21; y0++) {for (int x1 = x0 + 1; x1 < 20; x1++) {for (int y1 = y0 + 1; y1 < 21; y1++) {fun(x0, y0, x1, y1);}}}}printf("%d\n", 2 * n + 41); // 2*n 是对称直线,+41 是坐标轴垂直线return 0;
}

得到运行结果:

难度分析

⭐️⭐️⭐️

总结

通过代数几何知识(斜率与截距)解决几何问题是本题的核心思路,利用两层嵌套循环枚举点对,函数封装了检查与存储逻辑,代码结构紧凑。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

centos8:Could not resolve host: mirrorlist.centos.org

【1】错误消息&#xff1a; [rootcentos211 redis-7.0.15]# yum update CentOS Stream 8 - AppStream …

Android笔记(三十四):封装带省略号图标结尾的TextView

背景 项目需求需要实现在文本末尾显示一个icon&#xff0c;如果文本很长时则在省略号后面显示icon&#xff0c;使用TextView自带的drawableEnd可以实现&#xff0c;但是如果文本换行了则会显示在TextView垂直居中的位置&#xff0c;不满足要求&#xff0c;于是有了本篇的自定义…

CEF127 编译指南 Linux篇 - 安装Git和Python(三)

1. 引言 在前面的文章中&#xff0c;我们已经完成了基础开发工具的安装和配置。接下来&#xff0c;我们需要安装两个同样重要的工具&#xff1a;Git 和 Python。这两个工具在 CEF 的编译过程中扮演着关键角色。Git 负责管理和获取源代码&#xff0c;而 Python 则用于运行各种编…

centos系统设置本地yum源教程

在CentOS系统中,将ISO文件设置为本地源可以加快软件安装速度,特别是在没有网络连接的环境下。以下是详细步骤: 1. 下载和准备ISO镜像文件 首先,从CentOS的官方网站下载适合需求的CentOS ISO镜像文件。可以选择不同的版本,如CentOS 7或CentOS 8,以及适合你硬件架构的版本…

PDF view | Chrome PDF Viewer |Chromium PDF Viewer等指纹修改

1、打开https://www.browserscan.net/zh/ 2、将internal-pdf-viewer改为 internal-pdf-viewer-jdtest看下效果&#xff1a; 3、源码修改&#xff1a; third_party\blink\renderer\modules\plugins\dom_plugin_array.cc namespace { DOMPlugin* MakeFakePlugin(String plugin_…

模糊认知图模型、特征与推理

1. 基础知识 1.1认知图的发展 1948年&#xff0c;Tolman首次提到认知图&#xff3b;I]它把认知图描述为有向图&#xff0c;认为认知图是由一些弧连接起来的结点的集合&#xff0c;其目的是为心理学构建一个模型。后来&#xff0c;认知图被其他学者所借用&#xff0c;不同的学…

Mac 环境下类Xshell 的客户端介绍

在 Mac 环境下&#xff0c;类似于 Windows 环境中 Xshell 用于访问 Linux 服务器的工具主要有以下几种&#xff1a; SecureCRT&#xff1a; 官网地址&#xff1a;https://www.vandyke.com/products/securecrt/介绍&#xff1a;支持多种协议&#xff0c;如 SSH1、SSH2、Telnet 等…

玩转 uni-app 静态资源 static 目录的条件编译

一. 前言 老生常谈&#xff0c;了解 uni-app 的开发都知道&#xff0c;uni-app 可以同时支持编译到多个平台&#xff0c;如小程序、H5、移动端 App 等。它的多端编译能力是 uni-app 的一大特点&#xff0c;让开发者可以使用同一套代码基于 Vue.js 的语法编写程序&#xff0c;然…

【西瓜书】支持向量机(SVM)

支持向量机&#xff08;Support Vector Machine&#xff0c;简称SVM&#xff09;。 超平面 分类学习最基本的想法就是基于训练集合D在样本空间中找到一个划分超平面&#xff0c;将不同类别的样本分开。 但能将训练样本分开的划分超平面可能有很多&#xff0c;应该努力去找到哪…

【开源免费】基于SpringBoot+Vue.JS宠物咖啡馆平台(JAVA毕业设计)

博主说明&#xff1a;本文项目编号 T 064 &#xff0c;文末自助获取源码 \color{red}{T064&#xff0c;文末自助获取源码} T064&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析…

海康VsionMaster学习笔记(学习工具+思路)

一、前言 VisionMaster算法平台集成机器视觉多种算法组件&#xff0c;适用多种应用场景&#xff0c;可快速组合算法&#xff0c;实现对工件或被测物的查找测量与缺陷检测等。VM算法平台依托海康威视在图像领域多年的技术积淀&#xff0c;自带强大的视觉分析工具库&#xff0c;可…

Linux内核编译流程(Ubuntu24.04+Linux Kernel 6.8.12)

万恶的拯救者&#xff0c;使用Ubuntu没有声音&#xff0c;必须要自己修改一下Linux内核中的相关驱动逻辑才可以&#xff0c;所以被迫学习怎么修改内核&编译内核&#xff0c;记录如下 准备工作 下载Linux源码&#xff1a;在Linux发布页下载并使用gpg签名验证 即&#xff1a…

UE5 打包报错 Unknown structure 的解决方法

在虚幻引擎5.5 打包报错如下&#xff1a; UATHelper: 打包 (Windows): LogInit: Display: LogProperty: Error: FStructProperty::Serialize Loading: Property ‘StructProperty /Game/Components/HitReactionComponent/Blueprints/BI_ReactionInterface.BI_ReactionInterface…

根据导数的定义计算导函数

根据导数的定义计算导函数 1. Finding derivatives using the definition (使用定义求导)1.1. **We want to differentiate f ( x ) 1 / x f(x) 1/x f(x)1/x with respect to x x x**</font>1.2. **We want to differentiate f ( x ) x f(x) \sqrt{x} f(x)x ​ wi…

论文阅读:Dual-disentangled Deep Multiple Clustering

目录 摘要 引言 模型 实验 数据集 实验结果 结论 摘要 多重聚类近年来引起了广泛关注&#xff0c;因为它能够从不同的角度揭示数据的多种潜在结构。大多数多重聚类方法通常先通过控制特征之间的差异性来提取特征表示&#xff0c;然后使用传统的聚类方法&#xff08;如 …

Kafka知识体系

一、认识Kafka 1. kafka适用场景 消息系统&#xff1a;kafka不仅具备传统的系统解耦、流量削峰、缓冲、异步通信、可扩展性、可恢复性等功能&#xff0c;还有其他消息系统难以实现的消息顺序消费及消息回溯功能。 存储系统&#xff1a;kafka把消息持久化到磁盘上&#xff0c…

项目切换Java21

目录 项目启动流程 遇到的问题 目前我们所有的项目都是Java8的&#xff0c;突然交接过来一个Java21的项目&#xff0c;项目启动耗时挺久&#xff0c;本篇记录下问题以及解决方案 项目启动流程 1. 下载Java21 2. 配置Java21 本机环境变量配置 确保path里有Java21路径 3. …

【算法day4】链表:应用拓展与快慢指针

题目引用 两两交换链表节点删除链表的倒数第n个节点链表相交环形链表 1.两两交换链表节点 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即&#xff0c;只能进行节点交换&am…

电机控制理论基础及其应用

电机控制理论是电气工程和自动化领域中的一个重要分支&#xff0c;它主要研究如何有效地控制电机的运行状态&#xff0c;包括速度、位置、扭矩等&#xff0c;以满足各种应用需求。电机控制理论的基础知识涵盖了电机的工作原理、数学模型、控制策略以及实现技术等方面。下面是一…

【每天一篇深度学习论文】(IEEE 2024)即插即用特征增强模块FEM

目录 论文介绍题目&#xff1a;论文地址&#xff1a; 创新点方法整体结构 即插即用模块作用消融实验结果即插即用模块代码 论文介绍 题目&#xff1a; FFCA-YOLO for Small Object Detection in Remote Sensing Images 论文地址&#xff1a; https://ieeexplore.ieee.org/d…