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

AtCoder Beginner Contest竞赛题解 | 洛谷 AT_abc438_c 1D puyopuyo

​欢迎大家订阅我的专栏:算法题解:C++与Python实现!
本专栏旨在帮助大家从基础到进阶 ,逐步提升编程能力,助力信息学竞赛备战!

专栏特色
1.经典算法练习:根据信息学竞赛大纲,精心挑选经典算法题目,提供清晰的代码实现与详细指导,帮助您夯实算法基础。
2.系统化学习路径:按照算法类别和难度分级,从基础到进阶,循序渐进,帮助您全面提升编程能力与算法思维。

适合人群:

  • 准备参加蓝桥杯、GESP、CSP-J、CSP-S等信息学竞赛的学生
  • 希望系统学习C++/Python编程的初学者
  • 想要提升算法与编程能力的编程爱好者

附上汇总帖:AtCoder Beginner Contest竞赛题解 | 汇总


【题目来源】

洛谷:[AT_abc438_c ABC438C] 1D puyopuyo - 洛谷

【题目描述】

给定一个长度为N NN的整数序列A = ( A 1 , A 2 , … , A N ) A=(A_1,A_2,\ldots,A_N)A=(A1,A2,,AN)

你可以执行以下操作零次或多次(任意顺序,任意次数):

· 选择一个整数k kk满足1 ≤ k ≤ ∣ A ∣ − 3 且 A k = A k + 1 = A k + 2 = A k + 3 1 \leq k \leq |A|-3 且 A_k=A_{k+1}=A_{k+2}=A_{k+3}1kA3Ak=Ak+1=Ak+2=Ak+3,然后从A AA中删除A k , A k + 1 , A k + 2 , A k + 3 A_k,A_{k+1},A_{k+2},A_{k+3}Ak,Ak+1,Ak+2,Ak+3。(更准确地说,将A AA替换为( A 1 , A 2 , … , A k − 1 , A k + 4 , A k + 5 , … , A N ) (A_1,A_2,\ldots,A_{k-1},A_{k+4},A_{k+5},\ldots,A_N)(A1,A2,,Ak1,Ak+4,Ak+5,,AN)。)

这里,∣ A ∣ |A|A表示整数序列A AA的长度。

求重复进行操作后,最终∣ A ∣ |A|A可能的最小值。

【输入】

输入以以下格式从标准输入给出:

N A 1 A 2 … A N N A_1 A_2 \ldots A_NNA1A2AN

【输出】

输出重复进行操作后,最终∣ A ∣ |A|A可能的最小值。

【输入样例】

10 1 1 1 4 4 4 4 1 2 3

【输出样例】

2

【算法标签】

《洛谷 AT_abc438_c 1D puyopuyo》 #贪心# #栈#

【代码详解】

#include<bits/stdc++.h>usingnamespacestd;constintN=200005;typedefpair<int,int>PII;// 定义pair类型,first存储颜色,second存储连续个数intn;// 彩珠总数stack<PII>st;// 栈,存储{颜色, 连续个数}intmain(){// 输入彩珠总数cin>>n;// 处理每个彩珠for(inti=1;i<=n;i++){intx;// 当前彩珠的颜色cin>>x;// 如果栈为空 或 当前颜色与栈顶颜色不同if(st.empty()||x!=st.top().first){// 新颜色入栈,连续个数为1st.push({x,1});}// 如果当前颜色与栈顶颜色相同elseif(x==st.top().first){// 栈顶颜色的连续个数加1st.top().second++;// 如果连续个数达到4,消除这4个连续的彩珠if(st.top().second==4){st.pop();}}}// 计算消除后剩余的彩珠总数intans=0;while(!st.empty()){// 累加每个颜色段剩余的彩珠数ans+=st.top().second;st.pop();}// 输出剩余彩珠数cout<<ans<<endl;return0;}

【运行结果】

10 1 1 1 4 4 4 4 1 2 3 2
http://www.jsqmd.com/news/171339/

相关文章:

  • 【AI×实时Linux:极速实战宝典】以太网控制 - Linux TSN (802.1Qbv) 原理与实战:通过以太网传输硬实时指令
  • 使用TensorFlow 2.9镜像加速大模型训练:GPU算力优化技巧
  • 用TensorFlow-v2.9镜像部署生产级AI服务的五个关键步骤
  • Markdown数学公式书写指南:配合Transformer模型推导说明
  • 清华源pip install加速命令一行式复制粘贴
  • 空调制热品牌制热效果深度解析:格力技术领先优势明显 - 速递信息
  • conda env export导出TensorFlow 2.9环境便于共享
  • docker inspect深入查看TensorFlow 2.9容器元数据
  • 充电桩市场蓝海依旧!国家投资2000亿指明方向:新入局者如何借势破局,三大赛道浮现新机 - 速递信息
  • 2025靠谱的财法咨询专业公司TOP5推荐:有名有实力企业助力企业合规高效运营 - 工业设备
  • 陕西财务软件服务商最新排行推荐:从软件到企业信息化解决方案的全覆盖服务 - 深度智识库
  • 还在用Spring Boot跑边缘节点?,Quarkus 2.0原生编译让你的服务瘦身80%
  • 掌握Java 21外部内存API,3步实现C/C++级内存操控能力
  • 2025年电池仿真分析公司推荐:电池仿真公司找哪家? - 工业品牌热点
  • 染发剂别瞎买!遮白发、赶潮流、养头发,搞清楚这三件事再下单 - 速递信息
  • 2025年三坐标厂家综合盘点:国产三坐标厂家崛起,该如何选择? - 品牌推荐大师1
  • Spring Native 即将取代传统JVM?AOT 编译技术趋势与未来展望
  • 2025玻璃胶生产企业TOP5权威推荐:玻璃胶生产企业选择哪家好? - mypinpai
  • Java 9+模块系统实战:5个关键步骤实现类文件操作标准化
  • 2026年1月广东过滤棉厂家五大推荐:东冠高分子领衔记忆棉/木浆绵/防静电绵/海藻绵,专业海绵制品超市强势上榜! - 深度智识库
  • 【AI×实时Linux:极速实战宝典】工业总线 - 在 RT-Linux 上集成 IgH EtherCAT Master,实现 AI 直接驱动伺服电机
  • 2025 年机器视觉软件平台哪个好:国产领航与技术深耕 TOP5 榜单 - 速递信息
  • 【AI×实时Linux:极速实战宝典】IPC通信 - 基于POSIX共享内存与无锁环形缓冲区的高速图像传输
  • 飞算JavaAI代码生成黑科技曝光:如何10分钟完成一天工作量?
  • 2025年福州西点西餐培训学校排名:欧米奇的教学特色是什么? - myqiye
  • 清华镜像定期清理旧版本维护存储效率
  • 2025-2026图书防盗仪品牌推荐:守护馆藏安全,优选可靠设备 - 工业企业赋能社
  • 【AI×实时Linux:极速实战宝典】ROS 2实时化 - 配置Cyclone DDS与Real-time Executor实现确定性的节点调度
  • 集团降本刚需,语音机器人哪款效率更高? - 速递信息
  • 2025年行业内评价高的不锈钢板生产加工推荐榜单,不锈钢冷拉扁钢/不锈钢冷拉光圆/不锈钢酸洗板,不锈钢板零售批发哪家好 - 品牌推荐师