2025蓝桥杯备赛Day12——P8598 [蓝桥杯 2013 省 AB] 错误票据

🔍 2025蓝桥杯备赛Day12——P8598 [蓝桥杯 2013 省 AB] 错误票据

🚀 题目速览

题目难度:⭐️(适合掌握基础字符串处理与数组操作)

考察重点:输入处理、数组排序、逻辑判断

P8598 [蓝桥杯 2013 省 AB] 错误票据

题目背景

某涉密单位下发了某种票据,并要在年终全部收回。

题目描述

每张票据有唯一的 ID 号,全年所有票据的 ID 号是连续的,但 ID 的开始数码是随机选定的。因为工作人员疏忽,在录入 ID 号的时候发生了一处错误,造成了某个 ID 断号,另外一个 ID 重号。

你的任务是通过编程,找出断号的 ID 和重号的 ID。

数据保证断号不可能发生在最大和最小号。

输入格式

一个整数 N ( N < 100 ) N(N<100) N(N<100) 表示后面数据行数,接着读入 N N N 行数据,每行数据长度不等,是用空格分开的若干个(不大于 100 100 100 个)正整数(不大于 1 0 5 10^5 105),每个整数代表一个 ID 号。

输出格式

要求程序首先输入要求程序输出 1 1 1 行,含两个整数 m m m n n n,用空格分隔,其中, m m m 表示断号 ID, n n n 表示重号 ID。

输入输出样例 #1

输入 #1

2
5 6 8 11 9
10 12 9

输出 #1

7 9

输入输出样例 #2

输入 #2

6
164 178 108 109 180 155 141 159 104 182 179 118 137 184 115 124 125 129 168 196
172 189 127 107 112 192 103 131 133 169 158
128 102 110 148 139 157 140 195 197
185 152 135 106 123 173 122 136 174 191 145 116 151 143 175 120 161 134 162 190
149 138 142 146 199 126 165 156 153 193 144 166 170 121 171 132 101 194 187 188
113 130 176 154 177 120 117 150 114 183 186 181 100 163 160 167 147 198 111 119

输出 #2

105 120

🔥 核心解法:输入处理 + 排序遍历

🛠️ 实现思路

  1. 输入处理:逐行读取所有ID并存入数组

  2. 排序:将数组从小到大排序

  3. 遍历检查

    • 重复ID:相邻元素相等时记录
    • 断号ID:相邻元素差值超过1时记录中间缺失值

📚 多语言代码实现

解法一:C++实现(高效输入处理)

#include <iostream>
#include <sstream>
#include <vector>
#include <algorithm>
using namespace std;int main() {int N, num;vector<int> ids;string line;cin >> N;cin.ignore(); // 清除首行换行符残留// 逐行读取并解析IDwhile (N--) {getline(cin, line);stringstream ss(line);while (ss >> num) {ids.push_back(num);}}// 排序与遍历检查sort(ids.begin(), ids.end());int missing = 0, duplicate = 0;for (size_t i = 1; i < ids.size(); ++i) {if (ids[i] == ids[i-1]) duplicate = ids[i];       // 重复IDelse if (ids[i] > ids[i-1] + 1) missing = ids[i-1] + 1; // 断号ID}cout << missing << " " << duplicate;return 0;
}

关键点解析

  • cin.ignore()处理首行换行符残留

  • stringstream实现行内多数字解析

  • 排序后单次遍历同时检测重复和断号

    解法二:Python实现(简洁高效)

Pythonn = int(input())
ids = []
for _ in range(n):ids.extend(map(int, input().split()))
ids.sort()missing, duplicate = 0, 0
for i in range(1, len(ids)):if ids[i] == ids[i-1]:duplicate = ids[i]elif ids[i] - ids[i-1] > 1:missing = ids[i-1] + 1print(missing, duplicate)

优势:Python内置的列表操作简化输入处理(49)

🚨 易错点与优化技巧

输入处理陷阱

  1. 换行符残留:C++中读取首行后需用cin.ignore()清空缓冲区(32 14)。
  2. 多空格干扰: 使用 stringstream 或split()自动处理多余空格(32 14)。

逻辑判断优化

  • 同步检测:单次遍历同时检查重复和断号,时间复杂度 O(n log n)(排序主导)
  • 提前终止:若两个ID均已找到可提前结束遍历(50)

🌟 举一反三

变种题1:多断号与多重复

若存在多个断号或重复,需用哈希表统计频率并记录所有断点(22)。

变种题2:动态ID流处理

若数据无法一次性加载到内存,需使用外部排序或分块处理(53)。

蓝桥杯考场策略

  1. 优先Python实现:代码简洁,减少调试时间
  2. 必测用例
    • 输入含连续重复(如 [5,5,6])→ 输出 0 5
    • 断号在序列中部(如 [3,5,6])→ 输出 4 0
  3. 极端数据验证:最大ID值边界(题目保证断号不在端点)

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

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

相关文章

3.28日,NBA,欧篮联全扫盘,太阳VS森林狼

3.28日欧篮联扫盘 301费内巴切 vs 巴斯克 (-10.5)&#xff0c;总分预设&#xff1a;170.5 背景&#xff1a;比赛于2025年3月28日在费内巴切的乌尔克体育馆举行&#xff0c;费内巴切为主队。根据EuroLeague排名&#xff0c;费内巴切位列第二&#xff08;21胜10负&#xff09;&am…

【动态编译】Roslyn中 SyntaxKind 枚举类型

在 Roslyn&#xff08;.NET 的编译器平台&#xff09;中&#xff0c;SyntaxKind 是一个枚举类型&#xff0c;定义了 C# 语言中所有可能的语法节点类型。它是 Roslyn 抽象语法树&#xff08;AST&#xff09;的基础&#xff0c;用于标识每个 SyntaxNode 的具体种类。SyntaxKind 的…

【SpringCloud】Eureka的使用

3. Eureka 3.1 Eureka 介绍 Eureka主要分为两个部分&#xff1a; EurekaServer: 作为注册中心Server端&#xff0c;向微服务应用程序提供服务注册&#xff0c;发现&#xff0c;健康检查等能力。 EurekaClient: 服务提供者&#xff0c;服务启动时&#xff0c;会向 EurekaS…

前端知识点---window.location.assign() 和 window.location.href 的区别(javascript)

window.location.assign() 和 window.location.href 的主要区别&#xff1a; 读取和设置 window.location.href&#xff1a;既可以读取当前 URL&#xff0c;也可以通过赋值更改 URL。 window.location.assign()&#xff1a;只能用于跳转到新的 URL&#xff0c;不能读取当前地…

OpenCV图像拼接(3)图像拼接类cv::detail::MultiBandBlender

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 cv::detail::MultiBandBlender 是 OpenCV 中用于图像拼接&#xff08;stitching&#xff09;模块的一个类&#xff0c;主要用于将多张重叠的图像…

王者荣耀服务器突然崩了

就在刚刚王者荣耀服务器突然崩了 #王者荣耀崩了#的话题毫无预兆地冲上热搜&#xff0c;许多玩家发现游戏登录界面反复弹出异常提示&#xff0c;匹配成功后卡在加载界面&#xff0c;甚至出现对局数据丢失的情况。根据官方公告&#xff0c;目前技术团队已在全力抢修服务器 #王者…

【JavaScript】JavaScript Promises实践指南

【JavaScript】JavaScript Promises实践指南 你了解JavaScript中的Promises吗&#xff1f;这是一个很多人一开始就放弃的主题&#xff0c;但我会尽量让它变得尽可能简单。 1. “Promise”到底是什么&#xff1f; “Promise”是异步编程中的一个基本概念&#xff0c;特别是在J…

计算机视觉总结

以下是针对上述问题的详细解答,并结合代码示例进行说明: 1. 改进YOLOv5人脸检测模块,复杂光照场景准确率从98.2%提升至99.5% 优化具体过程: 光照补偿:在数据预处理阶段,采用自适应光照补偿算法,对图像进行实时增强,以减少光照变化对人脸检测的影响。数据增强:在训练…

ExpTimerApcRoutine函数分析之作用是ActiveTimerListHead里面移除定时器_etimer

第一部分&#xff1a; VOID ExpTimerApcRoutine ( IN PKAPC Apc, IN PKNORMAL_ROUTINE *NormalRoutine, IN PVOID *NormalContext, IN PVOID *SystemArgument1, IN PVOID *SystemArgument2 ) /* Routine Description: This function is the special …

算法分析与设计 专题三

目录 一、实验目的 二、实验内容 三、问题分析与求解 四、AC源代码、截图 五、实验小结 一、实验目的 1、了解贪心算法的分析过程&#xff0c;学会用贪心算法解决一些具体的问题。 2、了解广度优先算法和深度优先算法。 二、实验内容 1992 当然&#xff0c;我们的收藏中…

1688商品详情接口:深度解析与应用实践

在电商领域&#xff0c;1688作为中国领先的B2B平台&#xff0c;拥有海量的商品信息。对于开发者、商家和数据分析师来说&#xff0c;获取1688商品的详细信息是实现数据分析、竞品研究、自动化管理和精准营销的重要手段。本文将详细介绍1688商品详情接口的使用方法、技术细节以及…

每日算法-250328

记录今天学习和解决的LeetCode算法题。 92. 反转链表 II 题目 思路 本题要求反转链表中从 left 到 right 位置的节点。我们可以采用 头插法 的思路来反转指定区间的链表。 具体来说&#xff0c;我们首先定位到 left 位置节点的前一个节点 prev。然后&#xff0c;从 left 位置…

C语言中的位域:节省内存的标志位管理技术

位域&#xff08;Bit-field&#xff09; 是 C 语言中的一种特性&#xff0c;允许在结构体&#xff08;struct&#xff09;中定义占用特定位数的成员变量。通过位域&#xff0c;可以更精细地控制内存的使用&#xff0c;尤其是在需要存储多个布尔值或小范围整数时&#xff0c;可以…

【AI编程学习之Python】第一天:Python的介绍

Python介绍 简介 Python是一种解释型、面向对象的语言。由吉多范罗苏姆(Guido van Rossum)于1989年发明,1991年正式公布。官网:www.python.org Python单词是"大蟒蛇”的意思。但是龟叔不是喜欢蟒蛇才起这个名字,而是正在追剧:英国电视喜剧片《蒙提派森的飞行马戏团》(Mo…

【openstack系列】虚拟化技术

OpenStack 是一个开源的云计算管理平台,它本身并不直接提供虚拟化技术,而是通过集成不同的虚拟化解决方案来管理和编排计算、存储和网络资源。OpenStack 的核心优势在于其灵活性和可扩展性,支持多种虚拟化技术(Hypervisor),使企业可以根据需求选择合适的底层虚拟化方案。…

保姆级教程:Vue3 + Django + MySQL 前后端联调(PyCharm+VSCode版)

一、环境准备与验证 这里为减少篇幅&#xff0c;默认大家都安装好了这些软件。不会下载安装的&#xff0c;教程也很多&#xff0c;这里不再做赘述。话不多说&#xff0c;咱们开始&#xff1a; 1. 安装验证 确保已安装以下软件并验证版本&#xff1a; # 验证Node.js node -v…

Spring Data审计利器:@LastModifiedDate详解!!!

&#x1f552; Spring Data审计利器&#xff1a;LastModifiedDate详解&#x1f525; &#x1f31f; 简介 在数据驱动的应用中&#xff0c;记录数据的最后修改时间是常见需求。Spring Data的LastModifiedDate注解让这一过程自动化成为可能&#xff01;本篇带你掌握它的核心用法…

洛谷题单1-P1001 A+B Problem-python-流程图重构

题目描述 输入两个整数 a,b&#xff0c;输出它们的和&#xff08;∣a∣,∣b∣≤109&#xff09;。 输入格式 两个以空格分开的整数。 输出格式 一个整数。 输入输出样例 输入 20 30输出 50方式-print class Solution:staticmethoddef oi_input():"""从…

CCF CSP 第33次(2024.03)(2_相似度计算_C++)(字符串中字母大小写转换+哈希集合)

CCF CSP 第33次&#xff08;2024.03&#xff09;&#xff08;2_相似度计算_C&#xff09; 题目背景&#xff1a;题目描述&#xff1a;输入格式&#xff1a;输出格式&#xff1a;样例1输入&#xff1a;样例1输出&#xff1a;样例1解释&#xff1a;样例2输入&#xff1a;样例2输出…

Windows .gitignore文件不生效的情况排查

概述 今天下班在家里捣腾自己的代码&#xff0c;在配置.gitignore文件忽略部分文件的时候&#xff0c;发现死活不生效 问题根源 经过一通分析和排查才发现&#xff0c;是.gitignore文件的编码错了&#xff0c;刚开始还没注意到&#xff0c;因为是在Windows下开发&#xff0c…