2.11日学习总结

题目一 :

AC代码

#include <stdio.h>
#include <stdlib.h>// 定义长整型
typedef long long ll;// 定义求最大值和最小值的宏函数
#define MAX(a, b) ((a) > (b) ? (a) : (b))
#define MIN(a, b) ((a) < (b) ? (a) : (b))// 定义数组和变量
ll n, m;
ll a[200010];
ll x, y;
ll b = 0;  // 原 mx 改为 b
// 初始化最小值为一个较大的值
ll c = 0x3f3f3f3f;  // 原 mi 改为 cint main() {// 输入 n 和 mscanf("%lld %lld", &n, &m);// 输入数组 a 的元素for (int i = 1; i <= n; i++) {scanf("%lld", &a[i]);}// 输入 m 组 x 和 y,并找出最大的 xfor (int i = 1; i <= m; i++) {scanf("%lld %lld", &x, &y);b = MAX(b, x);}// 从 b 到 n 中找出最小的元素for (int i = b; i <= n; i++) {c = MIN(c, a[i]);}// 输出最小值printf("%lld", c);return 0;
}

 题解:

1.typedef long long ll;:将 long long 类型重命名为 ll,方便后续使用

2. 宏定义
// 定义求最大值和最小值的宏函数
#define MAX(a, b) ((a) > (b) ? (a) : (b))
#define MIN(a, b) ((a) < (b) ? (a) : (b))

 #define MAX(a, b) ((a) > (b) ? (a) : (b)):定义了一个宏函数 MAX,用于比较两个数 ab 的大小,返回其中较大的数。

#define MIN(a, b) ((a) < (b) ? (a) : (b)):定义了一个宏函数 MIN,用于比较两个数 ab 的大小,返回其中较小的数。

3.ll c = 0x3f3f3f3f;:用于记录从 b 位置开始到数组 a 末尾的元素中的最小值,初始值设为一个较大的数 0x3f3f3f3f,这样后续比较时可以方便地更新最小值。

4.输入 m(x, y) 数据并找出最大的 x

// 输入 m 组 x 和 y,并找出最大的 x
for (int i = 1; i <= m; i++) {scanf("%lld %lld", &x, &y);b = MAX(b, x);
}

使用 for 循环读取 m(x, y) 数据。

每次读取后,使用 MAX 宏函数比较当前的 x 和之前记录的最大值 b,将较大的值更新为新的 b

5.总结:这段代码的核心逻辑是先读取数组元素和若干组 (x, y) 数据,找出 x 中的最大值,然后在数组中从该最大值对应的位置开始到数组末尾找出最小值并输出。通过宏函数 MAXMIN 简化了比较操作

题目二:

 

AC代码 :

#include <stdio.h>// 比较函数,用于 qsort 从大到小排序
int c(const void *x, const void *y) {return (*(int *)y - *(int *)x);
}int main() {int n, m;int a[15005], b[15005], s;// 读取 n 和 m 的值scanf("%d%d", &n, &m);// 读取数组 a 的元素for (int i = 1; i <= n; i++) {scanf("%d", &a[i]);}// 计算总长度s = a[n] - a[1] + 1;// 计算每一个坑的距离for (int i = 1; i < n; i++) {b[i] = a[i + 1] - a[i];}// 使用 qsort 函数对数组 b 从大到小排序qsort(b + 1, n - 1, sizeof(int), c);// 从中间舍去 m - 1 段不需要的最长的路段for (int i = 1; i < m; i++) {s = s - b[i] + 1;}// 输出结果printf("%d\n", s);return 0;
}

题解 :

1.int c(const void *x, const void *y):这是一个用于 qsort 函数的比较函数,目的是让数组按照从大到小的顺序排序。qsort 是 C 语言标准库中的排序函数,它需要一个比较函数作为参数。const void *xconst void *y 是两个指向要比较元素的指针,通过 *(int *)x*(int *)y 将指针转换为 int 类型并取值,然后返回 *(int *)y - *(int *)x,如果结果大于 0,则 y 应该排在 x 前面,从而实现从大到小排序。

2.计算初始总长度

    // 计算总长度s = a[n] - a[1] + 1;

s = a[n] - a[1] + 1;:计算所有点构成的最大区间的长度,即最后一个点的位置减去第一个点的位置再加上 1。

3.计算相邻点之间的距离 

    // 计算每一个坑的距离for (int i = 1; i < n; i++) {b[i] = a[i + 1] - a[i];}

for (int i = 1; i < n; i++) { b[i] = a[i + 1] - a[i]; }:通过循环计算相邻点之间的距离,将结果存储到 b 数组中。 

4.对间隔进行排序

    // 使用 qsort 函数对数组 b 从大到小排序qsort(b + 1, n - 1, sizeof(int), c);

qsort(b + 1, n - 1, sizeof(int), c);:调用 qsort 函数对 b 数组中从第二个元素开始的 n - 1 个元素进行从大到小的排序,sizeof(int) 表示每个元素的大小,c 是前面定义的比较函数。

5.合并区间 

    // 从中间舍去 m - 1 段不需要的最长的路段for (int i = 1; i < m; i++) {s = s - b[i] + 1;}

for (int i = 1; i < m; i++) { s = s - b[i] + 1; }:通过循环舍去 m - 1 个最大的间隔,每次减去一个间隔的长度并加上 1,更新总长度 s

6.总结 :这段代码通过读取输入的点和区间数量,计算相邻点之间的距离,对距离进行排序,然后舍去部分最大的距离,最终得到最小的总长度并输出。

 

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

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

相关文章

Ollama 简单 好用 好玩

简介 Ollama https://github.com/ollama/ollama/ 是一个基于 Go 语言 的 本地大语言模型运行框架&#xff0c;专注于本地化运行大型语言模型&#xff08;LLM&#xff09;的开源工具。 类 Docker 产品&#xff08;支持 list,pull,push,run 等命令&#xff09;&#xff0c;更好玩…

【AIGC】在VSCode中集成 DeepSeek(OPEN AI同理)

在VSCode中集成 DeepSeek&#xff08;OPEN AI同理&#xff09; 一、集成 DeepSeek二、其他推荐VSCode插件 在 Visual Studio Code (VSCode) 中集成 AI 编程能力&#xff0c;可以通过安装和配置特定插件来实现。以下是如何通过 Continue 和 Cline 插件集成 DeepSeek&#xff1a;…

SpringBootWeb三层架构分层解耦

SpringBootWeb 1. SpringBootWeb案例1.1 控制层未拆分代码1.2 实体类1.3 静态资源文件1.4 txt文件1.5 运行界面展示 2. 三层架构拆分2.1 控制层&#xff08;Controller&#xff09;2.1.1 功能2.1.2 用户信息控制层 2.2 业务逻辑层&#xff08;Service&#xff09;2.2.2 功能2.2…

MyBatis的工作流程是怎样的?

大家好&#xff0c;我是锋哥。今天分享关于【MyBatis的工作流程是怎样的&#xff1f;】面试题。希望对大家有帮助&#xff1b; MyBatis的工作流程是怎样的&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 MyBatis 的工作流程可以分为几个主要的步骤&…

carbon 加入 GitCode:Golang 时间处理的 “瑞士军刀”

在 Golang 的开发生态中&#xff0c;时间处理领域长期存在着诸多挑战。高效、精准的时间处理对于各类软件应用的稳定运行与功能拓展至关重要。近日&#xff0c;carbon 正式加入 GitCode&#xff0c;为 Golang 开发者带来一款强大且便捷的时间处理利器&#xff0c;助力项目开发迈…

【力扣】148.排序链表

AC截图 题目 思路 基本情况处理&#xff1a; 如果链表为空 (head NULL) 或者链表仅有一个节点 (head->next NULL)&#xff0c;则链表已经是有序的&#xff0c;直接返回头节点 head。 分割链表&#xff1a; 使用快慢指针法找到链表的中间节点。slow 指针每次前进一格&…

新数据结构(7)——Object

Object类是所有类的父类&#xff0c;也就是说所有类都是object类的子类可以使用Object里的方法。 equals()和hashCode()是Object包含的方法 和equals的区别和联系 和equals()都是用于判断是否相等 基本数据类型只能用判断其是否相等&#xff0c;引用数据类型用判断的是其指…

保研考研机试攻略:python笔记(4)

🐨🐨🐨15各类查找 🐼🐼二分法 在我们写程序之前,我们要定义好边界,主要是考虑区间边界的闭开问题。 🐶1、左闭右闭 # 左闭右闭 def search(li, target): h = len(li) - 1l = 0#因为都是闭区间,h和l都可以取到并且相等while h >= l:mid = l + (h - l) // 2…

doris集群

开发doris的团队厉害&#xff0c;这个百度工程师确实也干了一些实事&#xff0c;不像领导层只会跑火车。 1 参数配置 1.1 文件句柄数 vim /etc/security/limits.conf * soft nofile 655350 * hard nofile 6553501.2 关闭透明大页 echo never > /sys/kernel/mm/transpare…

STM32的HAL库开发---高级定时器---互补输出带死区实验

一、互补输出简介 互补输出&#xff1a;OCx输出高电平&#xff0c;则互补通道OCxN输出低电平。OCx输出低电平&#xff0c;则互补通道OCxN输出高电平。 带死区控制的互补输出&#xff1a;OCx输出高电平时&#xff0c;则互补通道OCxN过一会再输出输出低电平。这个时间里输出的电…

京东广告生成式召回基于 NVIDIA TensorRT-LLM 的推理加速实践

0000 生成式推荐系统优势介绍 推荐系统的主要任务是根据用户的历史行为预测其兴趣点&#xff0c;并向其推荐相应的商品。传统的推荐系统在处理用户请求时&#xff0c;会触发多个召回模块&#xff08;包括热门商品召回、个性化召回、深度召回等&#xff09;&#xff0c;以召回大…

3.React 组件化开发

react&#xff1a;版本 18.2.0node&#xff1a; 版本18.19.1脚手架&#xff1a;版本 5.0.1 一、类组件 (一) 一个干净的脚手架 【1】使用已经被废弃的 CRA (create-react-app) create-react-app 已经被废弃&#xff0c;且目前使用会报错&#xff0c;官方已经不推荐使用&…

51单片机(国信长天)矩阵键盘的基本操作

在CT107D单片机综合训练平台上&#xff0c;首先将J5处的跳帽接到1~2引脚&#xff0c;使按键S4~S19按键组成4X4的矩阵键盘。在扫描按键的过程中&#xff0c;发现有按键触发信号后(不做去抖动)&#xff0c;待按键松开后&#xff0c;在数码管的第一位显示相应的数字:从左至右&…

【AI赋能】蓝耘智算平台实战指南:3步构建企业级DeepSeek智能助手

蓝耘智算平台实战指南&#xff1a;3步构建企业级DeepSeek智能助手 引言&#xff1a;AI大模型时代的算力革命 在2025年全球AI技术峰会上&#xff0c;DeepSeek-R1凭借其开源架构与实时推理能力&#xff0c;成为首个通过图灵测试的中文大模型。该模型在语言理解、跨模态交互等维…

机器学习 - 词袋模型(Bag of Words)实现文本情感分类的详细示例

为了简单直观的理解模型训练&#xff0c;我这里搜集了两个简单的实现文本情感分类的例子&#xff0c;第一个例子基于朴素贝叶斯分类器&#xff0c;第二个例子基于逻辑回归&#xff0c;通过这两个例子&#xff0c;掌握词袋模型&#xff08;Bag of Words&#xff09;实现文本情感…

没有服务器和显卡电脑如何本地化使用deepseek|如何通过API使用满血版deepseek

目录 一、前言二、使用siliconflow硅基流动 API密钥1、注册硅基流动2、创建API密钥3、下载AI客户端4、使用API密钥5、效果演示 三、使用deepseek官方API密钥1、创建API密钥2、使用API密钥3、效果演示 四、总结 一、前言 上篇文章我介绍了如何通过云服务器或者显卡电脑来本地化…

算法学习笔记之贪心算法

导引&#xff08;硕鼠的交易&#xff09; 硕鼠准备了M磅猫粮与看守仓库的猫交易奶酪。 仓库有N个房间&#xff0c;第i个房间有 J[i] 磅奶酪并需要 F[i] 磅猫粮交换&#xff0c;硕鼠可以按比例来交换&#xff0c;不必交换所有的奶酪 计算硕鼠最多能得到多少磅奶酪。 输入M和…

oracle执行grant授权sql被阻塞问题处理

一 问题描述 执行普通的grant授权sql(grant select,update on 表名 to 用户名)好几分钟都没反应&#xff0c;跟被阻塞了似的。 二 问题排查 #排查是否有阻塞 用OEM可以看到阻塞信息&#xff1a; 点‘性能’-‘阻塞会话’&#xff1a; 下面那个会话2958是我执行grant sql的…

SSM仓库物品管理系统 附带详细运行指导视频

文章目录 一、项目演示二、项目介绍三、运行截图四、主要代码1.用户登录代码&#xff1a;2.保存物品信息代码&#xff1a;3.删除仓库信息代码&#xff1a; 一、项目演示 项目演示地址&#xff1a; 视频地址 二、项目介绍 项目描述&#xff1a;这是一个基于SSM框架开发的仓库…

Deepseek 接入Word处理对话框(隐藏密钥)

硅基流动邀请码&#xff1a;1zNe93Cp 邀请链接&#xff1a;网页链接 亲测deepseek接入word&#xff0c;自由调用对话&#xff0c;看截图有兴趣的复用代码&#xff08;当然也可以自己向deepseek提问&#xff0c;帮助你完成接入&#xff0c;但是提问逻辑不一样给出的答案是千差万…