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

2.10日学习总结

题目一:

AC代码 

#include <stdio.h>#define N 1000000typedef long long l;int main() {int n, m;l s = 0;l a[N + 1], b[N + 1];int i = 1, j = 1;scanf("%d %d", &n, &m);for (int k = 1; k <= n; k++) {scanf("%lld", &a[k]);}for (int k = 1; k <= m; k++) {scanf("%lld", &b[k]);}while (i <= n && j <= m) {if (s + a[i] < b[j]) {s += a[i++];} else {s = b[j++];}}while (i <= n) {s += a[i++];}printf("%lld\n", s);return 0;
}

题解:

1.类型定义 

typedef long long l;

typedef long long l;:将 long long 类型重命名为 l,后续代码中就可以用 l 来定义长整型变量,让代码更简洁。

2.main 函数及变量声明

int n, m;:定义两个整型变量 nm,分别用于存储数组 ab 的长度。

l s = 0;:定义一个长整型变量 s 并初始化为 0,这个变量用于存储累加结果。

l a[N + 1], b[N + 1];:定义两个长整型数组 ab,数组长度为 N + 1,这样数组的有效下标范围是从 1 到 N

int i = 1, j = 1;:定义两个整型变量 ij 并初始化为 1,它们分别作为数组 ab 的下标,用于遍历数组元素。

3.核心逻辑

    while (i <= n && j <= m) {if (s + a[i] < b[j]) {s += a[i++];} else {s = b[j++];}}

 while (i <= n && j <= m):只要数组 ab 都还有未处理的元素,就会继续执行循环。

if (s + a[i] < b[j]):如果当前累加结果 s 加上数组 a 的当前元素 a[i] 小于数组 b 的当前元素 b[j],就把 a[i] 累加到 s 中,然后 i 加 1,指向下一个 a 数组元素。

else:否则,将 s 更新为 b[j],然后 j 加 1,指向下一个 b 数组元素

 4.总结

这段代码的主要逻辑是:依次比较数组 ab 的元素,根据特定规则更新累加结果 s,直到数组 b 的元素全部处理完,再把数组 a 剩余的元素累加到 s 中,最后输出 s 的值。

 题目二: 

AC代码 :

#include <stdio.h>#define S 1000005// 模拟队列的结构体
typedef struct {int d[S];int f;int r;
} Q;// 初始化队列
void i(Q *q) {q->f = 0;q->r = 0;
}// 判断队列是否为空
int e(Q *q) {return q->f == q->r;
}// 入队操作
void en(Q *q, int v) {q->d[q->r++] = v;
}// 出队操作
int de(Q *q) {return q->d[q->f++];
}// 获取队首元素
int fr(Q *q) {return q->d[q->f];
}int s[S], a[S];
int n;int main() {Q q;i(&q);// 输入 nscanf("%d", &n);// 先制造一叠牌(1,2,...,n)for (int j = 1; j <= n; j++) {en(&q, j);}// 开始模拟for (int j = 1; !e(&q); j++) {en(&q, fr(&q));de(&q);s[j] = fr(&q);de(&q);}// 将 j 放在 s[j] 处,经过一通操作后,就在正确的位置了for (int j = 1; j <= n; j++) {a[s[j]] = j;}// 输出for (int j = 1; j <= n; j++) {printf("%d ", a[j]);}printf("\n");return 0;
}

题解: 

1.队列结构体定义

// 模拟队列的结构体
typedef struct {int d[S];int f;int r;
} Q;

 typedef struct:定义一个结构体类型 Q 来模拟队列。

int d[S]:一个长度为 S 的整型数组,用于存储队列中的元素。

int f:表示队列的队首指针,指向队列中第一个元素的位置。

int r:表示队列的队尾指针,指向队列中下一个可插入元素的位置。

2.队列操作函数

初始化队列
// 初始化队列
void i(Q *q) {q->f = 0;q->r = 0;
}

void i(Q *q):该函数用于初始化队列,将队首指针 f 和队尾指针 r 都置为 0,表示队列为空。

判断队列是否为空
// 判断队列是否为空
int e(Q *q) {return q->f == q->r;
}

 int e(Q *q):该函数用于判断队列是否为空。如果队首指针 f 等于队尾指针 r,则表示队列为空,返回 1;否则返回 0。

入队操作
// 入队操作
void en(Q *q, int v) {q->d[q->r++] = v;
}

 void en(Q *q, int v):该函数用于将元素 v 插入到队列中。将元素 v 存储在队列数组 dr 位置,然后将队尾指针 r 加 1。

出队操作
// 出队操作
int de(Q *q) {return q->d[q->f++];
}

int de(Q *q):该函数用于从队列中取出队首元素。返回队列数组 df 位置的元素,然后将队首指针 f 加 1。

获取队首元素
// 获取队首元素
int fr(Q *q) {return q->d[q->f];
}

 int fr(Q *q):该函数用于获取队列的队首元素,直接返回队列数组 df 位置的元素。

3.主函数

初始化队列
Q q;
i(&q);

 定义一个队列变量 q,并调用 i 函数对其进行初始化。

构建初始牌堆
// 先制造一叠牌(1,2,...,n)
for (int j = 1; j <= n; j++) {en(&q, j);
}

使用 for 循环将编号从 1 到 n 的扑克牌依次入队,构建初始的牌堆。

 模拟扑克牌操作过程
// 开始模拟
for (int j = 1; !e(&q); j++) {en(&q, fr(&q));de(&q);s[j] = fr(&q);de(&q);
}

 for (int j = 1; !e(&q); j++):只要队列不为空,就持续进行操作。

en(&q, fr(&q));:将队首元素取出并重新插入到队尾。

de(&q);:将队首元素出队。

s[j] = fr(&q);:记录当前队首元素的编号到 s 数组中。

de(&q);:将队首元素出队。

确定每个位置对应的原始牌编号
// 将 j 放在 s[j] 处,经过一通操作后,就在正确的位置了
for (int j = 1; j <= n; j++) {a[s[j]] = j;
}

 通过遍历 s 数组,将 j 存储到 a 数组的 s[j] 位置,从而得到每个位置最终对应的原始牌编号。

4.总结:模拟队列的操作,对一叠扑克牌进行特定的操作,最终找出每个位置最终对应的原始牌编号并输出。主要步骤包括初始化队列、构建初始牌堆、模拟操作过程、确定最终位置对应关系以及输出结果。

相关文章:

2.10日学习总结

题目一&#xff1a; AC代码 #include <stdio.h>#define N 1000000typedef long long l;int main() {int n, m;l s 0;l a[N 1], b[N 1];int i 1, j 1;scanf("%d %d", &n, &m);for (int k 1; k < n; k) {scanf("%lld", &a[k]);…...

疯狂前端面试题(四)

一、Ajax、JSONP、JSON、Fetch 和 Axios 技术详解 1. Ajax&#xff08;异步 JavaScript 和 XML&#xff09; 什么是 Ajax&#xff1f; Ajax 是一种用于在不刷新页面的情况下与服务器进行数据交互的技术。它通过 XMLHttpRequest 对象实现。 优点 - 支持同步和异步请求。 - 能…...

YOLOv11-ultralytics-8.3.67部分代码阅读笔记-metrics.py

metrics.py ultralytics\utils\metrics.py 目录 metrics.py 1.所需的库和模块 2.def bbox_ioa(box1, box2, iouFalse, eps1e-7): 3.def box_iou(box1, box2, eps1e-7): 4.def bbox_iou(box1, box2, xywhTrue, GIoUFalse, DIoUFalse, CIoUFalse, eps1e-7): 5.def mas…...

SuperCopy解除网页禁用复制功能插件安装和使用

点击下载《SuperCopy解除网页禁用复制功能插件》 1. 前言 在当今数字化时代&#xff0c;网络已成为我们获取信息和知识的主要渠道。互联网如同一片浩瀚无垠的知识海洋&#xff0c;蕴藏着无数的资源&#xff0c;从学术论文到生活小窍门&#xff0c;从专业教程到娱乐资讯&#…...

UP-VLA:具身智体的统一理解与预测模型

25年1月来自清华大学和上海姚期智研究院的论文“UP-VLA: A Unified Understanding and Prediction Model for Embodied Agent”。 视觉-语言-动作 (VLA) 模型的最新进展&#xff0c;利用预训练的视觉语言模型 (VLM) 来提高泛化能力。VLM 通常经过视觉语言理解任务的预训练&…...

Unity 基于状态机的逻辑控制详解

状态机是游戏开发中常用的逻辑控制方法&#xff0c;它可以将复杂的逻辑分解成多个独立的状态&#xff0c;并通过状态转移来控制逻辑的执行流程。本文将详细介绍如何在 Unity 中基于状态机实现逻辑控制&#xff0c;并提供技术详解和代码实现。 一、状态机简介 1.1 基本概念 状…...

傅里叶单像素成像技术研究进展

摘要&#xff1a;计算光学成像&#xff0c;通过光学系统和信号处理的有机结合与联合优化实现特定成像特性的成像系统&#xff0c;摆脱了传统成像系统的限制&#xff0c;为光学成像技术添加了浓墨重彩的一笔&#xff0c;并逐步向简单化与智能化的方向发展。单像素成像(Single-Pi…...

IDEA接入DeepSeek

IDEA 目前有多个途径可以接入deepseek&#xff0c;比如CodeGPT或者Continue&#xff0c;这里借助CodeGPT插件接入&#xff0c;CodeGPT目前用的人最多&#xff0c;相对更稳定 一、安装 1.安装CodeGPT idea插件市场找到CodeGPT并安装 2.创建API Key 进入deepseek官网&#xf…...

前端如何判断浏览器 AdBlock/AdBlock Plus(最新版)广告屏蔽插件已开启拦截

2个月前AdBlock/AdBlock Plus疑似升级了一次 因为自己主要负责面对海外的用户项目&#xff0c;发现以前的检测AdBlock/AdBlock Plus开启状态方法已失效了&#xff0c;于是专门研究了一下。并尝试了很多方法。 已失效的老方法 // 定义一个检测 AdBlock 的函数 function chec…...

macOS 上部署 RAGFlow

在 macOS 上从源码部署 RAGFlow-0.14.1&#xff1a;详细指南 一、引言 RAGFlow 作为一款强大的工具&#xff0c;在人工智能领域应用广泛。本文将详细介绍如何在 macOS 系统上从源码部署 RAGFlow 0.14.1 版本&#xff0c;无论是开发人员进行项目实践&#xff0c;还是技术爱好者…...

如何在Kickstart自动化安装完成后ISO内拷贝文件到新系统或者执行命令

如何在Kickstart自动化安装完成后ISO内拷贝文件到新系统或者执行命令 需求 在自动化安装操作系统完成后&#xff0c;需要对操作系统进行配置需要拷贝一些文件到新的操作系统中需要运行一些脚本 问题分析 Linux安装操作系统时&#xff0c;实际上是将ISO镜像文件中的操作系统…...

在服务器部署JVM后,如何评估JVM的工作能力,比如吞吐量

在服务器部署JVM后&#xff0c;评估其工作能力&#xff08;如吞吐量&#xff09;可以通过以下步骤进行&#xff1a; 1. 选择合适的基准测试工具 JMH (Java Microbenchmark Harness)&#xff1a;适合微基准测试&#xff0c;测量特定代码片段的性能。Apache JMeter&#xff1a;…...

攻防世界32 very_easy_sql【SSRF/SQL时间盲注】

不太会&#xff0c;以后慢慢看 被骗了&#xff0c;看见very_easy就点进来了&#xff0c;结果所有sql能试的全试了一点用都没有 打开源代码发现有个use.php 好家伙&#xff0c;这是真的在考sql吗...... 制作gopher协议的脚本&#xff1a; import urllib.parsehost "12…...

STM32G474--Whetstone程序移植(双精度)笔记

1 获取Whetstone程序 Whetstone程序&#xff0c;我用github被墙了&#xff0c;所以用了KK的方式。 获取的程序目录如上所示。 2 新建STM32工程 配置如上&#xff0c;生成工程即可。 3 在生成的工程中添加并修改Whetstone程序 3.1 实现串口打印功能 在生成的usart.c文件中…...

【DeepSeek × Postman】请求回复

新建一个集合 在 Postman 中创建一个测试集合 DeepSeek API Test&#xff0c;并创建一个关联的测试环境 DeepSeek API Env&#xff0c;同时定义两个变量 base_url 和 api_key 的步骤如下&#xff1a; 1. 创建测试集合 DeepSeek API Test 打开 Postman。点击左侧导航栏中的 Co…...

开源身份和访问管理方案之keycloak(一)快速入门

文章目录 什么是IAM什么是keycloakKeycloak 的功能 核心概念client管理 OpenID Connect 客户端 Client Scoperealm roleAssigning role mappings分配角色映射Using default roles使用默认角色Role scope mappings角色范围映射 UsersGroupssessionsEventsKeycloak Policy创建策略…...

基于PaddleOCR的图像文字识别与程序打包方法

目录 一、基本介绍 二、程序实现 1&#xff09;环境配置 2&#xff09;代码实现 3&#xff09;程序运行结果 三、程序打包 1&#xff09;使用pyinstaller打包程序 2&#xff09;添加依赖和模型数据 四、需要注意的问题 五、总结 一、基本介绍 本文主要介绍利用现有开源…...

单片机上SPI和IIC的区别

SPI&#xff08;Serial Peripheral Interface&#xff09;和IC&#xff08;Inter-Integrated Circuit&#xff09;是两种常用的嵌入式外设通信协议&#xff0c;它们各有优缺点&#xff0c;适用于不同的场景。以下是它们的详细对比&#xff1a; — 1. 基本概念 SPI&#xff0…...

Python 字典(一个简单的字典)

在本章中&#xff0c;你将学习能够将相关信息关联起来的Python字典。你将学习如何访问和修改字典中的信息。鉴于字典可存储的信息量几乎不受限制&#xff0c;因此我们会演示如何遍 历字典中的数据。另外&#xff0c;你还将学习存储字典的列表、存储列表的字典和存储字典的字典。…...

一个简单的Windows TCP服务器实现

初始化 WSADATA wsaData; SOCKET serverSocket, clientSocket; struct sockaddr_in serverAddr { 0x00 }; struct sockaddr_in clientAddr { 0x00 }; int clientAddrLen sizeof(clientAddr);if (WSAStartup(MAKEWORD(2, 2), &wsaData) ! 0) {printf("WSAStartup f…...

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

R语言AI模型部署方案:精准离线运行详解

R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...

【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密

在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

系统设计 --- MongoDB亿级数据查询优化策略

系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log&#xff0c;共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题&#xff0c;不能使用ELK只能使用…...

Module Federation 和 Native Federation 的比较

前言 Module Federation 是 Webpack 5 引入的微前端架构方案&#xff0c;允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...

工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配

AI3D视觉的工业赋能者 迁移科技成立于2017年&#xff0c;作为行业领先的3D工业相机及视觉系统供应商&#xff0c;累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成&#xff0c;通过稳定、易用、高回报的AI3D视觉系统&#xff0c;为汽车、新能源、金属制造等行…...

今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存

文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...

华硕a豆14 Air香氛版,美学与科技的馨香融合

在快节奏的现代生活中&#xff0c;我们渴望一个能激发创想、愉悦感官的工作与生活伙伴&#xff0c;它不仅是冰冷的科技工具&#xff0c;更能触动我们内心深处的细腻情感。正是在这样的期许下&#xff0c;华硕a豆14 Air香氛版翩然而至&#xff0c;它以一种前所未有的方式&#x…...

Linux 内存管理实战精讲:核心原理与面试常考点全解析

Linux 内存管理实战精讲&#xff1a;核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用&#xff0c;还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...