发布时间:2026/8/20 23:58:12
【算法刷题】蓝桥杯:多次变化(位运算性质 + 贪心校验) 【算法刷题】蓝桥杯多次变化位运算性质 贪心校验 题目链接与描述题目名称多次变化题目链接蓝桥云课 - 多次变化数据规模1 ≤ n ≤ 10 5 1 \le n \le 10^51≤n≤1051 ≤ a r r i , n u m s i ≤ 10 5 1 \le arr_i, nums_i \le 10^51≤arri​,numsi​≤105核心问题给定长度为n nn的数组a r r arrarr和n u m s numsnums每次可挑连续 3 个数a , b , c a, b, ca,b,c若满足算式条件即可任意交换这三者的顺序。问能否将a r r arrarr转化为n u m s numsnums若能求对应位置差值的绝对值之和∑ i 0 n − 1 ∣ n u m s i − a r r i ∣ \sum_{i0}^{n-1} |nums_i - arr_i|∑i0n−1​∣numsi​−arri​∣若不能输出-1。 题目条件深度拆解为什么看不懂题目给出的原始条件是( ( a ∣ b ) ( a b ) ) m o d 2 c m o d 2 ((a \mid b) (a \ \ \ b)) \bmod 2 c \bmod 2((a∣b)(ab))mod2cmod21. 利用位运算恒等式化简根据计算机基础中的位运算恒等式( a ∣ b ) ( a b ) a b (a \mid b) (a \ \ \ b) a b(a∣b)(ab)ab直观理解按位或( a ∣ b ) (a \mid b)(a∣b)收集了两者出现过的所有1按位与( a b ) (a \ \ \ b)(ab)补上了重叠出现的1加起来正好等于普通的数值加法a b a bab。2. 转换成奇偶性判定将恒等式代入条件式子瞬间简化为( a b ) m o d 2 c m o d 2 (a b) \bmod 2 c \bmod 2(ab)mod2cmod2这说明只要( a b ) (a b)(ab)的奇偶性与c cc的奇偶性相同这 3 个连续的数就能任意交换顺序。分析奇偶组合奇 奇 偶→ \rightarrow→需要c cc是偶数组合奇, 奇, 偶偶 偶 偶→ \rightarrow→需要c cc是偶数组合偶, 偶, 偶奇 偶 奇→ \rightarrow→需要c cc是奇数组合奇, 偶, 奇3. 结论无条件自由重排只要数组里不是极致特殊的极端情况通常连续三个数的奇偶性都能自然凑出上述组合通过类似于冒泡排序的多次传导交换数组中的每一个元素都可以被挪动到任意位置。因此只要a r r arrarr和n u m s numsnums包含的元素种类与数量完全一致就一定能够转换成功 解题步骤备份与排序备份原始数组并将备份数组升序排序。可行性判断比较排序后的两个数组若有任何一位不相等a[i] ! b[i]说明元素对不上直接输出-1并结束程序。代价计算若元素完全一致无需考虑中间具体的交换过程直接计算未排序的原始数组在对应位置上的绝对值差值之和cost ∑ i 0 n − 1 ∣ n u m s [ i ] − a r r [ i ] ∣ \text{cost} \sum_{i0}^{n-1} |nums[i] - arr[i]|costi0∑n−1​∣nums[i]−arr[i]∣❌ 常见踩坑点数组未分配空间声明vectorint b;后未指定大小直接cin b[i]会导致内存越界崩溃Segmentation Fault。必须写成vectorlong long b(n);。算错代价的数组不能拿排序后的数组去算abs(a[i] - b[i])排序后的数组只用来校验元素一致性计算最终代价必须使用原始输入顺序的数组abs(nums[i] - arr[i])。数据溢出代价累加值可能超过2 31 − 1 2^{31}-1231−1必须使用long long存储。 最终 AC 代码 (C)#includebits/stdc.husingnamespacestd;intmain(){// 开启快速 I/Oios::sync_with_stdio(false);cin.tie(nullptr);intn;if(!(cinn))return0;vectorlonglonga(n),b(n);for(inti0;in;i)cina[i];for(inti0;in;i)cinb[i];// 1. 备份原数组vectorlonglongarra;vectorlonglongnumb;// 2. 对备份数组排序用于校验sort(arr.begin(),arr.end());sort(num.begin(),num.end());// 3. 检查元素是否完全匹配for(inti0;in;i){if(arr[i]!num[i]){cout-1\n;return0;// 无法转换直接退出}}// 4. 元素一致用原数组计算初始对应位置的代价和longlongsum0;for(inti0;in;i){sumabs(a[i]-b[i]);}coutsum\n;return0;}⏱️ 复杂度分析时间复杂度O ( n log ⁡ n ) \mathcal{O}(n \log n)O(nlogn)主要瓶颈在于对数组进行排序。对于n 10 5 n 10^5n105计算量约为1.7 × 10 6 1.7 \times 10^61.7×106次耗时仅几毫秒轻松 AC。空间复杂度O ( n ) \mathcal{O}(n)O(n)用于存储原数组及备份数组。

相关新闻

2026/8/20 23:58:12

领克01全域安全理念解析:从被动防御到主动守护的汽车安全进化

1. 从“被动防御”到“主动守护”:领克01安全理念的底层逻辑 聊到汽车安全,很多人的第一反应还是“这车钢板厚不厚”、“有几个气囊”、“碰撞测试几颗星”。这没错,但这是最基础、最被动的安全。就像我们以前买防盗门,只看钢板厚…

2026/8/20 23:58:12

汽车核心零部件更换周期全解析:告别盲开,科学养车指南

1. 从“坏了再换”到“按时更换”:一个被忽视的养车逻辑 很多车主朋友,包括我自己刚开车那会儿,都信奉一个朴素的养车原则: “没坏就不用换” 。听起来很省钱,很实在,对吧?直到我的车在高速上…

2026/8/20 23:58:12

技术面试准备:从算法到系统设计的全方位指南

1. 面试题学习的核心价值与误区面试题学习从来都不是简单的刷题背答案。我见过太多候选人把LeetCode刷穿却在实际面试中翻车,也遇到过基础知识扎实但缺乏解题思路的求职者。真正有效的面试准备,应该是知识体系、解题思维和表达能力的三重修炼。面试题本质…

2026/8/21 0:58:17

GTA OL高效收益方法论:从差传技巧到流程优化的玩家进阶指南

如果你在《GTA OL》里刷过钱,大概率经历过这种循环:找到一个“神级”差事,兴冲冲地跟着教程做,结果不是前置任务又臭又长,就是收益被砍得面目全非,或者干脆因为版本更新直接失效。你投入的时间,…

2026/8/21 0:58:17

Ubuntu 22.04上使用DevStack快速部署OpenStack开发测试环境

在国内开发或测试环境中,快速搭建一个可用的 OpenStack 平台是很多学习者和开发者面临的第一道门槛。手动部署 OpenStack 组件复杂且耗时,而 DevStack 作为一个自动化部署脚本工具,能够极大地简化这一过程。它通过一系列 Shell 脚本&#xff…

2026/8/21 0:58:17

Linux 内核 mana 驱动 TOCTOU 双取高危漏洞 CVE‑2026‑64034 技术解析

近期披露的 CVE‑2026‑64034 为 Linux 内核 net 子系统 mana 网卡驱动高危漏洞,CVSS 评分为 9.3。该漏洞属于 TOCTOU(检查时间与使用时间)双取问题,驱动对 DMA 共享内存中的字段执行两次读取操作,两次读取之间数据可被…

2026/8/21 0:53:17

MALDA:将LLM提示词与工具调用提升为语法的新型编程语言

这次我们来看一个名为MALDA的项目。它不是一个模型,也不是一个应用,而是一种全新的编程语言。它的核心设计理念非常独特:将大语言模型(LLM)的提示词(Prompts)和外部工具(Tools&#…

2026/8/20 10:17:13

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/20 20:11:18

工业传感器与变送器详解:序章 从物理世界到工业数据

序章 从物理世界到工业数据 ——重新认识工业传感器与变送器 工业自动化系统正变得日益复杂。今天的工业现场早已不是简单的控制回路,而是由多层技术共同构成的立体体系:PLC、DCS、SCADA、MES、工业互联网、边缘计算与人工智能。控制系统可以执行复杂算法,工业网络可以实现…

2026/8/21 0:03:13

Linux命令-uucico(UUCP传输程序)

Linux命令-uucico(UUCP传输程序) 🔰简介UUCP 体系简介 📖语法⚙️选项配置文件 💡示例示例 1:基本传输操作示例 2:主模式与从模式示例 3:调试与故障排查示例 4:UUCP 配置…

2026/8/21 0:03:13

Linux命令-uupick(UUCP文件接收工具)

Linux命令-uupick(UUCP文件接收工具)🔰简介uupick 在 UUCP 传输链中的位置📖语法⚙️选项交互命令💡示例示例 1:基本接收操作示例 2:仅处理来自特定系统的文件示例 3:完整 UUCP 文件…

2026/8/20 8:35:23

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/20 9:15:29

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/21 0:31:27

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…