当前位置: 首页 > 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…...

idea大量爆红问题解决

问题描述 在学习和工作中&#xff0c;idea是程序员不可缺少的一个工具&#xff0c;但是突然在有些时候就会出现大量爆红的问题&#xff0c;发现无法跳转&#xff0c;无论是关机重启或者是替换root都无法解决 就是如上所展示的问题&#xff0c;但是程序依然可以启动。 问题解决…...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机&#xff1a;Ubuntu 20.04.6 LTSHost&#xff1a;ARM32位交叉编译器&#xff1a;arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

基于大模型的 UI 自动化系统

基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘

美国西海岸的夏天&#xff0c;再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至&#xff0c;这不仅是开发者的盛宴&#xff0c;更是全球数亿苹果用户翘首以盼的科技春晚。今年&#xff0c;苹果依旧为我们带来了全家桶式的系统更新&#xff0c;包括 iOS 26、iPadOS 26…...

python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序&#xff0c;以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务&#xff0c;提供稳定高效的数据处理与业务逻辑支持&#xff1b;利用 uniapp 实现跨平台前…...

css的定位(position)详解:相对定位 绝对定位 固定定位

在 CSS 中&#xff0c;元素的定位通过 position 属性控制&#xff0c;共有 5 种定位模式&#xff1a;static&#xff08;静态定位&#xff09;、relative&#xff08;相对定位&#xff09;、absolute&#xff08;绝对定位&#xff09;、fixed&#xff08;固定定位&#xff09;和…...

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中&#xff0c;新增了一个本地验证码接口 /code&#xff0c;使用函数式路由&#xff08;RouterFunction&#xff09;和 Hutool 的 Circle…...

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA

浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求&#xff0c;本次涉及的主要是收费汇聚交换机的配置&#xff0c;浪潮网络设备在高速项目很少&#xff0c;通…...

招商蛇口 | 执笔CID,启幕低密生活新境

作为中国城市生长的力量&#xff0c;招商蛇口以“美好生活承载者”为使命&#xff0c;深耕全球111座城市&#xff0c;以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子&#xff0c;招商蛇口始终与城市发展同频共振&#xff0c;以建筑诠释对土地与生活的…...