洛谷P2397摩尔投票法的优化
第一次提交的思路和代码是的你没有想错我是直接拿着上一篇解决2013年408的解法直接去提交洛谷P2397 yyy loves Maths VI (mode) / 摩尔投票这道题的。结果也是不孚众望没有打错字啊就是这个孚很绝望啊只是过了一部分的点因为考虑到了这个数据的范围但是没有考虑这个数组空间的大小。回顾一下思路第一遍遍历找候选人第二遍遍历验证候选人是否真的出现超过 n/2 次数组作为参数传入需要知道长度时间O(N),数组也为ON感觉没啥大问题于是我很自然地写出了下面这段代码就提交去了#includebits/stdc.h using namespace std; int vote(int num[], int n) { int cand num[0]; int hp 1; // 第一遍找候选人 for(int i 1; i n; i) { if(hp 0) { cand num[i]; hp 1; } else if(cand num[i]) hp; else hp--; } // 第二遍验证是否确实超过 n/2 if(hp 0) return -1; hp 0; for(int i 0; i n; i) { if(num[i] cand) hp; } return hp n / 2 ? cand : -1; } int main() { int n; cin n; int num[n]; // 变长数组存全部数据 for(int i 0; i n; i) cin num[i]; int flag vote(num, n); cout flag; }结果就是这个很显然易见爆内存了因为除了题目信息意外既然忘记看了这个题目后面的时间限制1.00s 和 内存限制 5.00MB了我使用这个数组产生的空间大小为 2,000,000 × 4B 8,000,000 B是8MB。所以我第二次的优化方向为让这个数组变小一点或者最好不使用数组这样花费的空间变小不就可以通过了吗。第二次提交的思路优化和代码优化更深层的反思我犯了一个根本性的错误摩尔投票法根本不需要存整个数组摩尔投票的核心思想是来一个抵消一个遇到相同的数 → 票数 1遇到不同的数 → 票数 -1同归于尽票数为0 → 换候选人这完全是流式处理只需要记住当前候选人和当前票数两个变量即可。因为在408中出现了这个数组在这个题目当中有这个输入一行整数所以下意识的想到使用数组也就是把它写成了先存再算白白浪费了 O(n) 的空间我们完全可以把这个过程抽象成为打擂台“排好队一个一个来来一个处理一个这样等到遍历完数组整个过程也是结束了。代码如下#includebits/stdc.h using namespace std; int main() { int n,cand0; cinn; int hp0; for(int i0;in;i) { int x; cinx; if(hp0) { candx; hp; } else if(candx) hp; else hp--; } if(hp0) cand-1; coutcand; }另外要说明的是为什么这里不需要第二遍验证重新读一遍题目一共有 n 个正整数ai 他让 redbag 找众数。他还特意表示这个众数出现次数超过了一半。 他的意思是N个正整数里面必然存在如果不存在这个主元素在这个题目当中一定会说明这个主元素不存在要怎么办比如输出-1表示这种很显然就是不存在这个特殊的情况。这种流式处理思维是这次提交得到的最大的收获代码还能这样去优化空间以前考虑的都是在时间层面上的这个思路望我以后一定要记得住。

相关新闻

死锁检测与解除:从原理到工程实践的系统性解决方案

死锁检测与解除:从原理到工程实践的系统性解决方案

1. 项目概述:从“卡死”到“疏通”的系统工程 在后台系统开发或者数据库运维的日常里,最让人头疼的瞬间之一,莫过于系统突然“卡住”不动了。前端的请求转着圈圈,后端的日志停滞不前,CPU和内存占用看起来却不高。这时候…

2026/8/1 15:21:50阅读更多 →
2026年青岛本地GEO搜索优化6大核心趋势盘点

2026年青岛本地GEO搜索优化6大核心趋势盘点

2026年青岛本地GEO搜索优化6大核心趋势盘点本文盘点2026年青岛GEO搜索优化6大趋势,结合权威数据解读价值与落地方法,推荐标杆服务商,为本地企业布局AI流量提供参考。行业背景:2025-2026年GEO优化成青岛企业流量增长新抓手根据亿欧…

2026/8/1 15:21:50阅读更多 →
STM32 USART串口通信:从协议原理到DMA实战应用

STM32 USART串口通信:从协议原理到DMA实战应用

1. 项目概述:从零开始理解STM32的“嘴巴”和“耳朵”如果你刚开始接触STM32,面对一堆外设名词感到头大,那“USART”绝对是你绕不开的第一个坎。它不像GPIO点个灯那么直观,也不像定时器那样抽象,USART是微控制器与外界“…

2026/8/1 15:21:50阅读更多 →
多模态AI工具集成:从API调用到工作流压缩的技术实践

多模态AI工具集成:从API调用到工作流压缩的技术实践

# 多模态AI工具集成:从API调用到工作流压缩的技术实践## 背景:当“多模态”成为工程现实2026年,多模态AI市场已从2025年的25亿美元增长至33%的复合年增长率,但真正驱动企业采用的根本原因并非模型能力的“野蛮生长”。根据业界数据…

2026/8/2 1:53:20阅读更多 →
AI标准化:从技术混乱到产业协同的关键基础设施

AI标准化:从技术混乱到产业协同的关键基础设施

1. 项目概述:从标准到产业,一场静水深流的变革最近几年,AI的热度几乎要溢出屏幕,从大语言模型的全民狂欢,到AIGC应用的遍地开花,大家讨论的焦点往往是哪个模型参数更大、哪个应用又出了爆款。但在我和不少一…

2026/8/2 1:53:20阅读更多 →
Windows Phone模拟器WPR Alpha部署与XAP应用运行实战指南

Windows Phone模拟器WPR Alpha部署与XAP应用运行实战指南

1. 项目缘起:为何在今天还要折腾Windows Phone模拟器?如果你是一位移动应用开发者,或者对移动操作系统历史有浓厚兴趣的爱好者,那么“Windows Phone”这个名字一定不会陌生。这个由微软倾力打造,却最终在移动市场浪潮中…

2026/8/2 1:53:20阅读更多 →
如何免费提升网盘下载速度:9大平台直链解析工具完全指南

如何免费提升网盘下载速度:9大平台直链解析工具完全指南

如何免费提升网盘下载速度:9大平台直链解析工具完全指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天…

2026/8/2 1:53:20阅读更多 →
【WebFlux】第八篇 —— 自定义调度器

【WebFlux】第八篇 —— 自定义调度器

Flux / Mono 自定义线程调度 线程调度主要讲(Schedulers / publishOn / subscribeOn)前置:你已经学过 handle、generate、create、buffer、limitRate、doOnXXX、onXxx、Sinks。 本文聚焦「响应式代码跑在哪些线程上」——这是把响应式程序从「…

2026/8/2 1:53:20阅读更多 →
【Bug已解决】UlyssesSPAttentionHF with PEFT model 解决方案

【Bug已解决】UlyssesSPAttentionHF with PEFT model 解决方案

【Bug已解决】UlyssesSPAttentionHF with PEFT model 解决方案 一、现象长什么样 想把 Ulysses 序列并行(UlyssesSPAttentionHF)和 PEFT(LoRA)结合起来:用 Ulysses 把长序列沿序列维切到多卡,用 LoRA 做参数…

2026/8/2 1:51:19阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/2 0:00:10阅读更多 →
限时公开!某头部SaaS公司内部AI模板工厂架构文档(含5类行业模板源码+性能压测报告)

限时公开!某头部SaaS公司内部AI模板工厂架构文档(含5类行业模板源码+性能压测报告)

更多请点击: https://intelliparadigm.com 第一章:AI模板批量生成的核心价值与落地全景 AI模板批量生成正从实验性工具演进为现代软件工程的关键基础设施。它通过语义理解、上下文感知与结构化约束,将重复性高、模式明确的代码/文档/配置生成…

2026/8/2 0:00:12阅读更多 →
如何快速找回消失的网页:Web Archives浏览器扩展终极指南

如何快速找回消失的网页:Web Archives浏览器扩展终极指南

如何快速找回消失的网页:Web Archives浏览器扩展终极指南 【免费下载链接】web-archives Browser extension for viewing archived and cached versions of web pages, available for Chrome, Edge and Safari 项目地址: https://gitcode.com/gh_mirrors/we/web-a…

2026/8/2 0:00:13阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/2 0:00:10阅读更多 →
限时公开!某头部SaaS公司内部AI模板工厂架构文档(含5类行业模板源码+性能压测报告)

限时公开!某头部SaaS公司内部AI模板工厂架构文档(含5类行业模板源码+性能压测报告)

更多请点击: https://intelliparadigm.com 第一章:AI模板批量生成的核心价值与落地全景 AI模板批量生成正从实验性工具演进为现代软件工程的关键基础设施。它通过语义理解、上下文感知与结构化约束,将重复性高、模式明确的代码/文档/配置生成…

2026/8/2 0:00:12阅读更多 →
如何快速找回消失的网页:Web Archives浏览器扩展终极指南

如何快速找回消失的网页:Web Archives浏览器扩展终极指南

如何快速找回消失的网页:Web Archives浏览器扩展终极指南 【免费下载链接】web-archives Browser extension for viewing archived and cached versions of web pages, available for Chrome, Edge and Safari 项目地址: https://gitcode.com/gh_mirrors/we/web-a…

2026/8/2 0:00:13阅读更多 →
无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理 【免费下载链接】lossless-cut The swiss army knife of lossless video/audio editing 项目地址: https://gitcode.com/gh_mirrors/lo/lossless-cut 在数字媒体创作领域,视频编辑处理的质量损…

2026/8/2 1:29:34阅读更多 →
AI辅助本科论文写作:8大工具评测与高效使用指南

AI辅助本科论文写作:8大工具评测与高效使用指南

1. 本科生论文写作的AI辅助现状本科毕业论文是每个大学生必须跨越的一道坎。记得我当年写论文时,光是文献检索就花了整整两周时间,打印的参考文献堆满了半个书桌。如今AI技术的发展为学术写作带来了革命性变化,合理使用这些工具可以节省80%以…

2026/8/1 0:00:10阅读更多 →
如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手 【免费下载链接】ticket-purchase 大麦自动抢票,支持人员、城市、日期场次、价格选择 项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase 还在为抢不到热门演唱会门票…

2026/8/1 0:00:10阅读更多 →