当前位置: 首页 > news >正文

两个数列问题

# 问题描述

给定长度分别为 `n` 和 `m` 的两个数列`a[n]`、`b[m]`,和一个整数`k`。求`|(a[i] - b[j])^2 - k^2|`的最小值。

## 输入格式

第一行有 2 个整数 `n`、`m`、`k`,分别表示数列 `a`、`b` 的长度,以及公式中的整数 `k`。

第二行有 `n` 个整数,表示数列 `a` 的各个元素。

第三行有 `m` 个整数,表示数列 `b` 的各个元素。

## 输出格式

求上述公式的最小值。

**数据范围**

其中 20%的数据:`1 <= n,m <= 3000,-10^9 <= a[i], b[j], k <= 10^9,for all i, j`

其中 30%的数据:`1 <= n,m <= 50000,k = 0,-10^9 <= a[i], b[j] <= 10^9,for all i, j`

其中 50%的数据:`1 <= n,m <= 50000,-10^9 <= a[i], b[j], k <= 10^9,for all i, j`

**输入样例**

5 5 1

5 3 4 1 2

0 6 7 9 8

5 5 0

5 3 4 1 2

0 6 7 9 8

**输出样例**

0

1

#include <stdio.h> //提供输入输出功能
#include <stdlib.h> //提供各种通用工具函数,包括动态内存分配、转换函数等
#include <limits.h> //提供有关各数据类型的限制的常量定义// 返回两个整数中的较小值
int min(int a, int b) {return a < b ? a : b; // 如果 a 小于 b,返回 a;否则返回 b//条件运算符,比较两个变量 a 和 b 的值,并返回其中的较小值//条件运算符的语法格式:条件 ? 表达式1 : 表达式2//条件是一个布尔表达式(返回t或f),如果条件为t,则返回表达式1的值。否则返回式2的值
}int main() {int n, m, k;// 提示用户输入数列长度 n、m 和整数 kprintf("请输入数列长度 n 和 m 以及整数 k(格式: n m k):");scanf("%d %d %d", &n, &m, &k);// 分配内存以存储数列 a 和 bint *a = (int *)malloc(n * sizeof(int)); // 为数列 a 分配内存int *b = (int *)malloc(m * sizeof(int)); // 为数列 b 分配内存// 提示用户输入数列 a 的元素printf("请输入数列 a 的 %d 个元素(以空格分隔):", n);for (int i = 0; i < n; i++) {scanf("%d", &a[i]); // 逐个读取数列 a 的元素}// 提示用户输入数列 b 的元素printf("请输入数列 b 的 %d 个元素(以空格分隔):", m);for (int j = 0; j < m; j++) {scanf("%d", &b[j]); // 逐个读取数列 b 的元素}// 初始化最小值为一个很大的数int min_value = INT_MAX;long long k_squared = (long long)k * k; // 计算 k 的平方,使用 long long 防止溢出// 遍历所有可能的 a[i] 和 b[j] 的组合for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {long long diff = a[i] - b[j]; // 计算差值long long value = diff * diff; // 计算差值的平方long long result = labs(value - k_squared); // 计算 |(a[i] - b[j])^2 - k^2| 的绝对值min_value = min(min_value, result); // 更新最小值}}// 输出最小值的结果printf("最小值为: %d\n", min_value);// 释放内存free(a);free(b);return 0;
}

int *a = (int *)malloc(n * sizeof(int)); 用于在 C 语言中动态分配内存 

  1. int *a:

    • 这部分声明了一个指向整数的指针 a,该指针将用于存储动态分配的整数数组的地址。
  2. malloc(n * sizeof(int)):

    • malloc 是内存分配函数,用于在堆内存中分配一块指定大小的内存。
    • n * sizeof(int) 计算所需内存的大小:
      • n 是数组中元素的数量(用户输入的数列长度)。
      • sizeof(int) 返回一个整数类型所占的字节数(通常是 4 字节,具体取决于平台)。
    • malloc 返回的是 void * 类型的指针,因此需要进行类型转换,将其转换为 int * 类型。
  3. (int *):

    • 这是一个强制类型转换,确保 malloc 返回的指针被视为指向整数的指针。

相关文章:

两个数列问题

# 问题描述 给定长度分别为 n 和 m 的两个数列a[n]、b[m]&#xff0c;和一个整数k。求|(a[i] - b[j])^2 - k^2|的最小值。 ## 输入格式 第一行有 2 个整数 n、m、k&#xff0c;分别表示数列 a、b 的长度&#xff0c;以及公式中的整数 k。 第二行有 n 个整数&#xff0c;表示…...

python中堆的用法

Python 堆&#xff08;Headp&#xff09; Python中堆是一种基于二叉树存储的数据结构。 主要应用场景&#xff1a; 对一个序列数据的操作基于排序的操作场景&#xff0c;例如序列数据基于最大值最小值进行的操作。 堆的数据结构&#xff1a; Python 中堆是一颗平衡二叉树&am…...

轮班管理新策略,提高效率与降低员工抱怨

良好轮班管理对企业关键&#xff0c;需提前计划、明确期望、保持灵活公平、加强沟通并利用轮班调度系统。ZohoPeople作为智能排班系统&#xff0c;提供轻松创建班次、自动更换、分配管理员、设置津贴及即时通知等功能&#xff0c;助力企业高效管理。 一、HR轮班管理的5大技巧 …...

spring-cloud-alibaba-nacos-config2023.0.1.*启动打印配置文件内容

**背景&#xff1a;**在开发测试过程中如果可以打印出配置文件的内容&#xff0c;方便确认配置是否准确&#xff1b;那么如何才可以打印出来呢&#xff1b; spring-cloud-alibaba-nacos-config 调整日志级别 logging:level:com.alibaba.cloud.nacos.configdata.NacosConfigD…...

数据结构:二叉树、堆

目录 一.树的概念 二、二叉树 1.二叉树的概念 2.特殊类型的二叉树 3.二叉树的性质 4.二叉树存储的结构 三、堆 1.堆的概念 2.堆的实现 Heap.h Heap.c 一.树的概念 注意&#xff0c;树的同一层中不能有关联&#xff0c;否侧就不是树了&#xff0c;就变成图了&#xff…...

hi3798mv100 linux 移植

# Linux开发环境搭建 ## uboot编译 1. 必须先安装gcc&#xff0c;要不然make 等命令无法使用 2. 配置arm 交叉编译链 # gcc sudo apt-get install gcc-9 gcc -v# 安装 Linaro gcc-arm-linux-gnueabihf&#xff0c;注意不是arm-linux-gnueabihf-gcc sudo apt-get install ar…...

Docker-Harbor概述及构建

文章目录 一、Docker Harbor概述1.Harbor的特性2.Harbor的构成 二、搭建本地私有仓库三、部署 Docker-Harbor 服务四、在其他客户端上传镜像五、维护管理Harbor 一、Docker Harbor概述 Harbor 是 VMware 公司开源的企业级 Docker Registry 项目&#xff0c;其目标是帮助用户迅…...

部署项目最新教程

​ 3.3安装mysql 运行代码&#xff1a; yum install mysql 运行代码&#xff1a; yum install mysql-server 中间还是一样要输入y然后回车 运行代码&#xff1a; yum install mysql-devel 好&#xff0c;经过上面三步&#xff0c;mysql安装成功&#xff0c;现在启动mysql…...

linux证明变量扩展在路径名扩展之前执行

题目&#xff1a;怎么设计一组命令来证明变量扩展在路径名扩展之前执行。 为了证明变量扩展在路径名扩展之前执行&#xff0c;可以通过编写一个简单的 shell 脚本来观察这两个过程的顺序。我们可以使用以下步骤进行设计&#xff1a; 步骤 1&#xff1a;准备环境 在你选择的 …...

CentOS 7.9安装MySQL

下载Linux版MySQL安装包 下载地址https://downloads.mysql.com/archives/community/ 下载解压后 安装&#xff0c;按照从上至下顺序&#xff0c;一条一条执行即可安装完毕。 进入到rpm所在目录rpm -ivh mysql-community-common-8.0.26-1.el7.x86_64.rpm rpm -ivh mysql-comm…...

MacOS虚拟机安装Windows停滞在“让我们为你连接到网络”,如何解决?

1. 问题描述 MacOS在虚拟机安装win11过程中&#xff0c;停止在“让我们为你连接到网络”步骤&#xff0c;页面没有任何可以点击的按钮&#xff0c;进行下一步操作。 2. 解决方案&#xff08;亲测有效&#xff09; 到达该界面&#xff0c;按下ShiftF10&#xff08;Windows&…...

黑马程序员Java笔记整理(day03)

1.switch 2.for与while对比 3.嵌套定义,输出的区别性 4.break与continue 5.随机数生成的两种方式 6.Random 7.随机验证码...

centos7更换阿里云镜像源操作步骤及命令

centos7更换阿里云镜像源 在CentOS 7上更换为阿里云的镜像源可以通过以下步骤进行&#xff1a; 备份当前的YUM源配置文件 sudo cp -a /etc/yum.repos.d /etc/yum.repos.d.backup清理原有的YUM源配置文件 sudo rm -f /etc/yum.repos.d/*.repo下载阿里云的CentOS 7源配置文件 …...

冲刺大厂 | 一个线程调用两次start()方法会出现什么现象?

大家好&#xff0c;我是冰河~~ 今天给大家分享的面试题是&#xff1a;一个线程调用两次start()方法会出现什么现象&#xff1f;这道面试题是一道关于多线程的基础面试题&#xff0c;很多小伙伴对这个面试题不太了解&#xff0c;其实&#xff0c;如果你看过JDK中关于Thread类的…...

leaflet(一)初始化地图

Leaflet 与天地图结合使用&#xff0c;可以通过天地图提供的 API 获取地图瓦片&#xff0c;并在 Leaflet 地图上显示。 1. 安装依赖 首先&#xff0c;确保你已经安装了 Leaflet 和 Vue&#xff1a; npm install leaflet npm install vue-leaflet npm install leaflet.tilela…...

Unity开发Hololens项目

Unity打包Hololens设备 目录Visual Studio2019 / Visual Studio2022 远端部署设置Visual Studio2019 / Visual Studio2022 USB部署设置Hololens设备如何查找自身IPHololens设备门户Unity工程内的打包设置 目录 记录下自己做MR相关&#xff1a;Unity和HoloLens设备的历程。 Vi…...

立志最细,FreeRtos的中断管理(Interrupt Management)函数,详解!!!

前言&#xff1a;本文参考&#xff0c;韦东山老师开发文档&#xff0c;连接放在最后。 为什么需要中断管理函数&#xff1f; 在FreeRtos操作系统中&#xff0c;需要实时响应性&#xff0c;也就是随时随地必须保证正常多任务的运行&#xff0c;如果有中断发生&#xff0c;因为中…...

作业2-线性回归的Matlab代码实现

一、前言 相关配置&#xff1a;Matlab 2020a&#xff08;版本的影响应该不大&#xff0c;.m代码基本都能运行&#xff0c;个人感觉就是Simulink对版本的要求高一些&#xff09; 二、任务描述 基于近两节课的理论推导&#xff0c;用代码实现线性回归&#xff0c;并对预测结果进…...

用jQuery在canvas上绘制绝对定位的元素

在Web开发中,我们经常需要在canvas上精确定位和绘制元素。虽然canvas本身不支持DOM元素的定位,但我们可以借助jQuery来实现这一功能。本文将介绍如何使用jQuery在canvas上实现元素的绝对定位。 1. 基本思路 我们的基本思路是: 创建一个包含canvas的容器div将需要定位的元素放…...

Android中 tools:text 和 android:text区别

首先引入命名空间 <androidx.constraintlayout.widget.ConstraintLayoutxmlns:android"http://schemas.android.com/apk/res/android"xmlns:tools"http://schemas.android.com/tools"/androidx.constraintlayout.widget.ConstraintLayout> tools:te…...

select、poll、epoll 与 Reactor 模式

在高并发网络编程领域&#xff0c;高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表&#xff0c;以及基于它们实现的 Reactor 模式&#xff0c;为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。​ 一、I…...

基于Springboot+Vue的办公管理系统

角色&#xff1a; 管理员、员工 技术&#xff1a; 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能&#xff1a; 该办公管理系统是一个综合性的企业内部管理平台&#xff0c;旨在提升企业运营效率和员工管理水…...

Rust 开发环境搭建

环境搭建 1、开发工具RustRover 或者vs code 2、Cygwin64 安装 https://cygwin.com/install.html 在工具终端执行&#xff1a; rustup toolchain install stable-x86_64-pc-windows-gnu rustup default stable-x86_64-pc-windows-gnu ​ 2、Hello World fn main() { println…...

DAY 26 函数专题1

函数定义与参数知识点回顾&#xff1a;1. 函数的定义2. 变量作用域&#xff1a;局部变量和全局变量3. 函数的参数类型&#xff1a;位置参数、默认参数、不定参数4. 传递参数的手段&#xff1a;关键词参数5 题目1&#xff1a;计算圆的面积 任务&#xff1a; 编写一…...

用递归算法解锁「子集」问题 —— LeetCode 78题解析

文章目录 一、题目介绍二、递归思路详解&#xff1a;从决策树开始理解三、解法一&#xff1a;二叉决策树 DFS四、解法二&#xff1a;组合式回溯写法&#xff08;推荐&#xff09;五、解法对比 递归算法是编程中一种非常强大且常见的思想&#xff0c;它能够优雅地解决很多复杂的…...

Django RBAC项目后端实战 - 03 DRF权限控制实现

项目背景 在上一篇文章中&#xff0c;我们完成了JWT认证系统的集成。本篇文章将实现基于Redis的RBAC权限控制系统&#xff0c;为系统提供细粒度的权限控制。 开发目标 实现基于Redis的权限缓存机制开发DRF权限控制类实现权限管理API配置权限白名单 前置配置 在开始开发权限…...

GAN模式奔溃的探讨论文综述(一)

简介 简介:今天带来一篇关于GAN的,对于模式奔溃的一个探讨的一个问题,帮助大家更好的解决训练中遇到的一个难题。 论文题目:An in-depth review and analysis of mode collapse in GAN 期刊:Machine Learning 链接:...

React父子组件通信:Props怎么用?如何从父组件向子组件传递数据?

系列回顾&#xff1a; 在上一篇《React核心概念&#xff1a;State是什么&#xff1f;》中&#xff0c;我们学习了如何使用useState让一个组件拥有自己的内部数据&#xff08;State&#xff09;&#xff0c;并通过一个计数器案例&#xff0c;实现了组件的自我更新。这很棒&#…...

js 设置3秒后执行

如何在JavaScript中延迟3秒执行操作 在JavaScript中&#xff0c;要设置一个操作在指定延迟后&#xff08;例如3秒&#xff09;执行&#xff0c;可以使用 setTimeout 函数。setTimeout 是JavaScript的核心计时器方法&#xff0c;它接受两个参数&#xff1a; 要执行的函数&…...

用鸿蒙HarmonyOS5实现国际象棋小游戏的过程

下面是一个基于鸿蒙OS (HarmonyOS) 的国际象棋小游戏的完整实现代码&#xff0c;使用Java语言和鸿蒙的Ability框架。 1. 项目结构 /src/main/java/com/example/chess/├── MainAbilitySlice.java // 主界面逻辑├── ChessView.java // 游戏视图和逻辑├── …...